Probleme mit "" bei Datenbankeintrag

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Probleme mit "" bei Datenbankeintrag

    Erst mal Tach zusammen. Bin neu hier. Soweit ...

    Habe schon in mehreren Foren rumgesucht, aber noch keine Lösung für mein Problem gefunden.

    Über ein Formular soll Text in eine Datenbank eingeschrieben werden. Bevor die Daten endgültig eingeschrieben werden, soll es eine Vorschaufunktion geben. Gebe ich einen Text mit Anführungszeichen ein, bricht der Datenbankeintrag ab.

    Beispiel:

    Formulareintrag: Dies ist ein "Test!"
    In der Datenbank steht dann: Dies ist ein \

    Seltsamerweise habe ich das Problem nicht, wenn ich die Vorschaufunktion umgehe und direkt in die DB einsschreiben lasse. Habe auch schon alle möglichen Varianten mit mysql_escape_string und addslashes() ausprobiert. Nix funzt.

    Danke für Eure Hilfe ...

    Hier die entsprechenden Quellcodes:

    db_formular.php:

    <form action="db_vorschau.php" method="post" target="_self">
    .
    echo "<tr><td>Predigt:</td>";
    echo "<td><textarea name='sermon' cols='40' rows='10'></textarea></td></tr>";
    .


    db_vorschau.php:

    <form action="db_eintrag.php" method="post" target="_self">
    <input type="hidden" name="sermon" value="<?php print "$sermon"; ?>">
    .
    $sermon = nl2br($sermon);
    $sermon = stripslashes($sermon);
    .


    db_eintrag.php:

    $insert = "INSERT INTO db (sermon) VALUES ('$sermon')";

  • #2
    Such mal im Forum nach magic_quotes. Zur Lösung hilft dir:
    get_magic_quotes_gpc
    stripslashes
    mysql_real_escape_string

    Comment


    • #3
      und wenn du:

      db_eintrag.php:

      $insert = "INSERT INTO db (sermon) VALUES ('$_POST[sermon]')";


      ausprobierst

      Comment


      • #4
        Original geschrieben von lapse_of_taste
        und wenn du:

        db_eintrag.php:

        $insert = "INSERT INTO db (sermon) VALUES ('$_POST[sermon]')";


        ausprobierst
        erstens geht es nur um die vorschau, da das eintragen in die db ja funktioniert, und zweitens sollte es dann schon so heissen
        PHP Code:
        $insert "INSERT INTO db (sermon) VALUES (".$_POST['sermon'].");"
        byez - sagg
        mfg - sagg

        Comment


        • #5
          PHP Code:
          $insert "INSERT INTO db (sermon) VALUES (".$_POST['sermon'].");"
          Wenn $_POST['sermon'] ein String ist müsste es SO lauten
          PHP Code:
          $insert 'INSERT INTO db (sermon) VALUES ("' $_POST['sermon'] . '");'
          (oder die " und ' vertauschen...ist egal!)

          btw. könnte man das auch noch so schreiben:
          PHP Code:
          if (get_magic_quotes_gpc())
          {
           
          $_POST['sermon'] = stripslashes($_POST['sermon']);
          }
          $insert 'INSERT INTO db (sermon) VALUES ("' mysql_real_escape_string($_POST['sermon']) . '");'
          Last edited by ghostgambler; 01-11-2004, 15:29.

          Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

          bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
          Wie man Fragen richtig stellt

          Comment

          Working...
          X