Mike: Werte in Variablen, die Zeichen wie ' enthalten, bekommen ein \

Hallo,

mal angenommen, man hat ein Formularfeld ($text), in welches man folgendes eingibt:

Das gibt's doch gar nicht.

Anschliessend lässt man sich $text anzeigen, dann sieht man folgendes:

Das gibt's doch gar nicht.

Wie lässt sich das umgehen? Oder muss ich das Zeichen "nachträglich" aus den Variablen entfernen? Dafür könnte ich mir eine Art replace-Befehl vorstellen, mit dem ich einfach jedes \ Zeichen ersatzlos streichen könnte, oder so...

Also ich möchte gern wissen: Warum ist das so? Und was tut man am besten dagegen?

Ist relativ wichtig, da die eingegebenen Werte in eine Tabelle übernommen werden sollen und da mit weitergearbeitet werden soll... es geht um ein Internet-Radio, und in englischen Songtiteln kommen diese Hochkomma nunmal recht häufig vor.

Grüsse
Mike

  1. Hallo Mikee

    mal angenommen, man hat ein Formularfeld ($text), in welches man folgendes eingibt:

    Das gibt's doch gar nicht.

    Anschliessend lässt man sich $text anzeigen, dann sieht man folgendes:

    Das gibt's doch gar nicht.

    Hmm, kam bei mir noch nie vor, glaube ich. Wies sieht denn Dein Code aus?
    Es gibt auf jedenfall ein Funktion die Slashes entfernt:
    http://www.php.net/manual/de/function.stripslashes.php
    und eine die diese hinzufügt:
    http://www.php.net/manual/de/function.stripslashes.php
    weiter Stringfunktionen:
    http://www.php.net/manual/de/ref.strings.php

    Viele Grüße
    Horst

  2. Hallo Mike,

    stripslashes($Textfeld);

    und der Fall ist erledigt.

    Gruss
    Rainer

    1. stripslashes($Textfeld);

      und der Fall ist erledigt.

      Besser umgekehrt: magic_quotes generell ausschalten (siehe lulus Antwort) und nur bei Bedarf Sonderzeichen maskieren, entweder mit htmlentities() oder mysql_escape_string() & Co.
      Die Mistdinger tauchen sonst unkontrollierbar an hunderttausend Stellen auf.

      Gruß,
        soenk.e

  3. Huhu Mike

    Also ich möchte gern wissen: Warum ist das so?

    <quote>[...]
    If magic_quotes_runtime is enabled, most functions that return data from any sort of external source including databases and text files will have quotes escaped with a backslash. [...]
    </quote>

    http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-gpc
    http://www.php.net/manual/en/function.get-magic-quotes-gpc.php

    Viele Grüße

    lulu

    --
    bythewaythewebsuxgoofflineandenjoytheday
    1. Huhu Mike

      ups, 'magic_quotes_runtime'war jetzt nicht ganz das richtige
      in Deinem Fall ist wohl eher 'magic_quotes_gpc' zuständig.

      <quote version="2ter Versuch">
      [...]
      Sets the magic_quotes state for GPC (Get/Post/Cookie) operations. When magic_quotes are on, all ' (single-quote), " (double quote), \ (backslash) and NUL's are escaped with a backslash automatically.
      [...]
      </quote>

      http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-gpc
      http://www.php.net/manual/en/function.get-magic-quotes-gpc.php

      Viele Grüße

      lulu

      --
      bythewaythewebsuxgoofflineandenjoytheday