heinetz: Doppelte und einfach Anführungszeihen im MySQL-Statement

Hallo Forum,

in meinem selfmade CMS wird mit einem WYSIWYG-EDITOR HTML editiert und dann per MySQL-Statement in der DB abgespeichert.

Was ist der korrekte Weg folgenden String in einem MySQL-Statement zu verarbeiten ?

<img src="gif.gif" title="Bla 'Bla'">

danke für Tipps und

beste gruesse,
heinetz

  1. Hallo,

    in meinem selfmade CMS wird mit einem WYSIWYG-EDITOR HTML editiert und dann per MySQL-Statement in der DB abgespeichert.

    Was ist der korrekte Weg folgenden String in einem MySQL-Statement zu verarbeiten ?

    <img src="gif.gif" title="Bla 'Bla'">

    die passende Maskierfunktion verwenden, siehe Vorabversion eines neuen Artikels:
    http://aktuell.de.selfhtml.org/artikel/review/kontextwechsel/#massnahmen

    Freundliche Grüße

    Vinzenz

    1. Hallo,

      herzlichen Dank. Wie reagiert mysql_real_escape_string(), wenn
      die Werte ind $_POST-Variablen mit "magic_quotes_gpc" 'versehen
      sind ?

      Muss ich zum Verwenden von mysql_real_escape_string() magic_quotes
      auf OFF stellen ? Muss ich das dann im Empfängerskript des Forms
      machen ?

      Oder reichts eventuell so:

      $wert = mysql_real_escape_string(stripslashes($_POST['wert']));

      beste gruesse,
      heinetz

      1. Hi,

        herzlichen Dank. Wie reagiert mysql_real_escape_string(), wenn
        die Werte ind $_POST-Variablen mit "magic_quotes_gpc" 'versehen
        sind ?

        Es "reagiert" wie sonst auch.

        Dein Script bekommt allerdings von aussen Daten, die bereits verfälscht sind.

        Muss ich zum Verwenden von mysql_real_escape_string() magic_quotes
        auf OFF stellen ? Muss ich das dann im Empfängerskript des Forms
        machen ?

        Das solltest du generell auf off stellen.

        Oder reichts eventuell so:

        $wert = mysql_real_escape_string(stripslashes($_POST['wert']));

        Zur Not ja. Aber sonderlich sinnvoll ist es nicht.
        Ausserdem verfälscht das dann auch wieder die Daten, wenn magic_quotes_gpc irgendwann mal auf off gestellt wird - in PHP 6 wird es komplett entfallen.
        Du solltest also wenigstens vorher prüfen, ob es aktiv ist, und nur dann etwas dagegen unternenehmen.

        MfG ChrisB

        --
        Light travels faster than sound - that's why most people appear bright until you hear them speak.
        1. Hello,

          Du solltest also wenigstens vorher prüfen, ob es aktiv ist, und nur dann etwas dagegen unternenehmen.

          Und das kann er auch generell am Anfang des Scriptes rekursiv für jedes betroffene Array tun, eben unter Beachtung des Schalters, den er bequem mit get_magic_quotes_gpc() abfragen kann.

          http://us3.php.net/manual/en/function.get-magic-quotes-gpc.php

          function stripslashes_deep($value)
          {
              if (!get_magic_quotes_gpc()) return $value;

          if(is_array($value))
              {
                  array_map('stripslashes_deep', $value);
              else
              {
                  stripslashes($value);
              }

          return $value;
          }

          $_POST = stripslashes_deep($_POST);

          usw.

          Liebe Grüße aus dem schönen Oberharz

          Tom vom Berg

          --
          Nur selber lernen macht schlau
          http://bergpost.annerschbarrich.de
      2. Hallo,

        herzlichen Dank. Wie reagiert mysql_real_escape_string(), wenn
        die Werte ind $_POST-Variablen mit "magic_quotes_gpc" 'versehen
        sind ?

        Muss ich zum Verwenden von mysql_real_escape_string() magic_quotes
        auf OFF stellen ?

        sinnvollerweise ja: siehe verlinkter Artikel, letzter Abschnitt:
        http://aktuell.de.selfhtml.org/artikel/review/kontextwechsel/#magic_quotes

        Freundliche Grüße

        Vinzenz