magic_quotes und stripslashes

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

  • magic_quotes und stripslashes

    Hallo Forum,

    in meinem Kontaktformular werden bei einer Fehleingabe die vom Besucher ausgefüllten Felder übernommen:
    PHP-Code:
    <input id="betreff" type="text" name="betreff" value="' . $email_betreff . '" /> 
    Wenn jetzt jemand Anführungszeichen postet, lasse ich sie durch htmlspecialchars zu Entities umwandeln. Dennoch werden sie escaped, was ich bislang nur folgendermaßen verhindern kann:
    PHP-Code:
    $email_betreff = (htmlspecialchars(stripslashes($_POST['betreff']))); 
    Nun meine Frage: Geht das auch anders? Meine Lösung setzt ja magic_quotes voraus, was ja etwas verpönt ist und auch nicht überall aktiviert bzw. möglich ist.

    Vielen Dank,
    Erik

  • #2
    warum escapst du diese eingaben wenn du sie an den user zurück gibst?

    escapen solltest du erst wenn du die daten irgendwo abspeicherst. zb in einer db.

    Kommentar


    • #3
      Das ist ja das Problem: Nicht ich escape sie, sondern der Server, und das kann ich bisher halt nur durch stripslashes verhindern.

      Kommentar


      • #4
        Wenn du keine Möglichkeit hast, selbst auf die Konfiguration einzuwirken - dann bleibt dir noch, vorher abzufragen, ob magic_quotes_gpc aktiviert ist, und wenn ja, dann die zusätzlichen Slashes zu entfernen.
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #5
          Hi,

          @jens: er escaped nicht, er unescaped (wegen magic_quotes)

          @Erik: Frage die Konfiguration mit get_magic_quotes_gpc ab, bevor Du Dich für ein stripslashes entscheidest.

          LG

          Kommentar


          • #6
            Vielen Dank schonmal an Euch alle, aber gibt's denn keine Alternative zu magic_quotes bzw. stripslashes? Bisher ging's zwar problemlos auf jedem Server, aber ich würde es lieber ganz anders lösen (vorausgesetzt, es gibt überhaupt eine bessere Alternative).

            Kommentar


            • #7
              Wie jetzt, Alternative? Wenn Du die Konfiguration ändern kannst, dann schalt sie halt ab. Wenn Dein Script auf beliebigen Servern laufen soll, auf die Du keinen Einfluss hast, musst Du's halt abfragen.

              Kommentar


              • #8
                Okay, also muß ich es schon so lösen wie bisher, und einfach nur überprüfen bzw. dafür sorgen, daß magic_quotes aktiviert ist? Und falls es nicht aktivierbar ist, mit den Slashes leben? (wäre ja auch nicht so schlimm, und bisher geht's ja auch eh überall.)

                EDIT: Oder was meinst Du mit Konfiguration und abschalten, daß der Server "automatisch" escaped? Wie kann ich das abschalten?
                Zuletzt geändert von erikbln; 06.06.2007, 16:35.

                Kommentar


                • #9
                  Ich habe mal schnell gegoogelt und gemerkt, daß mir da offensichlich ein Hintergrund fehlte: Die Entities werden durch aktiviertes magic_quotes escaped, richtig? Also schalte ich dieses entweder ab, oder (wenn das nicht möglich ist) setze stripslashes ein. Sehe ich das richtig?

                  Kommentar


                  • #10
                    Ja. (Bis auf die Formulierung "Entities".)
                    I don't believe in rebirth. Actually, I never did in my whole lives.

                    Kommentar


                    • #11
                      Ist klar, war blöd formuliert (auch aus Faulheit ;-)) Nicht die Entities werden escaped (wozu auch), sondern die direkt ins input-Element eingegebenen Anführungszeichen, noch bevor htmlspecialchars angewandt wird.

                      Hat sich ja alles schnell aufgeklärt, vielen Dank an alle!

                      Kommentar

                      Lädt...
                      X