Probleme mit "" bei Datenbankeintrag

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • 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

    Kommentar


    • #3
      und wenn du:

      db_eintrag.php:

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


      ausprobierst

      Kommentar


      • #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

        Kommentar


        • #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']) . '");'
          Zuletzt geändert von ghostgambler; 01.11.2004, 14:29.

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

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

          Kommentar

          Lädt...
          X