Melli: aus "hallo" wird \"hallo\" ! wieso?

Hallo,

ich habe ein Problem. Ich benutze ein fertiges PHP-Skript um Kommentare zu einer Seite zu speichern. Wenn ich jetzt in das Formular etwas mit Anführungszeichen(egal ob " oder ') eingebe wird es mit einem \ davor abgespeichert.

Könnt Ihr euch denken warum?

mfg Melli

  1. Hallo Melli

    Könnt Ihr euch denken warum?

    Ja. Aber poste doch mal die Zeile wo das "Hallo" ausgegeben wird.

    Gruss

    1. Hallo Melli

      Könnt Ihr euch denken warum?

      Ja. Aber poste doch mal die Zeile wo das "Hallo" ausgegeben wird.

      Gruss

      Hallo,

      EINLESEN:
      $comment_text = trim($_POST['comment_text']);

      $datei = fopen($comment_file, "a");
      flock($datei, 2);
      fwrite($datei, time()."|".$_SERVER["REMOTE_ADDR"]."|".$name."|".$comment_text."\n");
      flock($datei, 3);
      fclose($datei);
      }

      AUSGABE:
      for ($i = 0; $i < $comment_total_entries; $i++)
      {
      $parts = explode("|", $data[$i]);
      $kommentar = $parts[3];
      echo $kommentar;
      }

      Das ist das ganze in Kurzform. Ich hoffe das hilft dir weiter. Es kann aber eigentlich nix mit der Ausgabe zu tun haben, weil es schon mit >"< statt >"< im Textfile gespeichert wird.

      mfg Melli

      1. Hi Melli...

        EINLESEN:
        $comment_text = trim($_POST['comment_text']);

        Probier es so:
        $comment_text = trim(stripslashes($_POST['comment_text']));

        Damit sollte dem Inhalt die Backslashes genommen werden...

        Gruss David

  2. Hallo,

    ich nehme mal an, daß das daran liegt, daß in der php.ini magic_quotes angeschaltet ist.

    Viele Grüße
    Manfred

  3. hi,

    ich habe ein Problem. Ich benutze ein fertiges PHP-Skript um Kommentare zu einer Seite zu speichern. Wenn ich jetzt in das Formular etwas mit Anführungszeichen(egal ob " oder ') eingebe wird es mit einem \ davor abgespeichert.

    Könnt Ihr euch denken warum?

    http://www.dclp-faq.de/q/q-magic-quotes.html

    gruss,
    wahsaga

  4. Hallo,

    Wenn ich jetzt in das Formular etwas mit Anführungszeichen(egal ob " oder ') eingebe wird es mit einem \ davor abgespeichert.

    magic quotes sind vermutlich in der php.ini eingeschaltet.
    http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-gpc
    Du kannst mit get_magic_quotes_gpc() nachschauen, ob das so ist.
    http://www.php.net/manual/en/function.get-magic-quotes-gpc.php

    Du kannst die Backslashes mit stripslashes() wegmachen
    http://www.php.net/manual/de/function.stripslashes.php

    N.B. es ist nicht moeglich, es mit ini_set() zu loesen.
    (ini_set "kommt zu spaet", wenn das Skript anlaeuft,
    hat PHP die Backslashes schon an die Parameter angefuegt...)

    Gruesse,

    Thomas

    1. hi,

      N.B. es ist nicht moeglich, es mit ini_set() zu loesen.
      (ini_set "kommt zu spaet", wenn das Skript anlaeuft,
      hat PHP die Backslashes schon an die Parameter angefuegt...)

      mittels entsprechender angabe in einer .htaccess-datei im script-verzeichnis sollte es doch aber AFAIK gehen, oder?
      schliesslich sagt das manual ja auch, dass diese option auch "changeable: PHP_INI_PERDIR" sei ...

      gruss,
      wahsaga

      1. Hallo wahsaga,

        Danke fuer die Anregung.

        mittels entsprechender angabe in einer .htaccess-datei im script-verzeichnis sollte es doch aber AFAIK gehen, oder?

        Kann gut sein. Diese Moeglichkeit vergesse ich immer.
        (Sie ist mir irgendwie suspekt, ich weiss nicht, wieso.)

        schliesslich sagt das manual ja auch, dass diese option auch "changeable: PHP_INI_PERDIR" sei ...

        Stimmt. Sollte also gehen.
        Werde es bei Gelegenheit mal ausprobieren.

        Gruesse,

        Thomas