Fehlerhafte Formulareingaben wiederherstellen?

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

  • Fehlerhafte Formulareingaben wiederherstellen?

    Hi Leute,

    ich habe ein Kontaktformular, welches an ein PHP-Script übermittelt wird.
    Gibt der User z.B. keine E-Mail ein, werden die bereits ausgefüllten Feldinhalte wieder in die Felder eingefügt.

    Vorher wandel ich die Feldtinhalte mit htmlspecialchars um, damit keine HTML-Zeichen aus den Feldern den Quelltext zerreißen z.B. > < " u.s.w.
    Wenn der User das Formular aber mehrmals mit fehlenden/fehlerhaften Eingaben abschickt, werden die bereits mit htmlspecialchars formatierten Werte erneut vom Script umformatiert. Dann verdoppeln sich die entsprechenden Zeichen im Textfeld.

    Wie kann ich das umgehen?

    Gruß
    Oneside
    Luxus Magazin
    Luxus Shops

  • #2
    Re: Fehlerhafte Formulareingaben wiederherstellen?

    Original geschrieben von oneside
    Vorher wandel ich die Feldtinhalte mit htmlspecialchars um, damit keine HTML-Zeichen aus den Feldern den Quelltext zerreißen z.B. > < " u.s.w.
    Natürlich, korrekt und erforderlich.
    Wenn der User das Formular aber mehrmals mit fehlenden/fehlerhaften Eingaben abschickt, werden die bereits mit htmlspecialchars formatierten Werte erneut vom Script umformatiert. Dann verdoppeln sich die entsprechenden Zeichen im Textfeld.
    Das kann ich nicht nachvollziehen.

    Wenn im value eines Textfeldes bspw. "C &amp;amp; A" drinsteht, zeigt der Browser das als C & A an, und schickt es auch so ab.
    Eine "Verdoppeldung" der Daten nach erneutem Abschicken und bearbeiten dürfte da nicht stattfinden.

    Also hast du uns vermutlich wesentliche Details verschwiegen.
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Also mir ist gerade aufgefallen, dass das auch schon beim ertsen mal passiert...


      Wenn ich in eine Textarea folgendes schreibe:

      Code:
      " \ >
      und das Forumlar dann abschicke, werden vom script die Zeichen umgewandelt:
      $_POST['message'] = htmlspecialchars($_POST['message']);

      dabei kommt folgendes raus:

      Code:
      \ quot; \\ gt;
      Ich habe mal die &-Zeichen vor dem quot und dem gt weggelassen, da das Forum hier das irgendwie sonst nicht anzeigt...

      Schreibe ich diese dann wieder ins Textfeld, erhalte ich im Textfeld folgenden Inhalt:
      Code:
      \" \\ >
      Bei mehrmaligem absenden werden die Zeichen dann immer mehr:
      Code:
      \" \\ >
      Code:
      \\\" \\\\ >
      Code:
      \\\\\\\" \\\\\\\\ >
      Code:
      \\\\\\\\\\\\\\\" \\\\\\\\\\\\\\\\ >
      Werden da vielleicht vom Webserver immer slashes drangehängt???
      Zuletzt geändert von oneside; 29.08.2006, 14:44.
      Luxus Magazin
      Luxus Shops

      Kommentar


      • #4
        Was fällt dir auf? es geht sich gar nicht ums httpspecialchars.

        wie sehen die einstellungen für magic_quotes_gpc aus?
        nutzt du addslaches?

        Kommentar


        • #5
          Also setze ich vor den Part:
          $_POST['message'] = htmlspecialchars($_POST['message']);

          Noch die Zeile:
          $_POST['message'] = stripslashes($_POST['message']);

          dann geht wunderbar

          *** EDIT

          Ahhh jetzt ja, magic_quotes_gpc ist bei meinem lokalen Webserver auf ON gestellt. Das sollte ich dann natürlich abfangen
          Zuletzt geändert von oneside; 29.08.2006, 14:48.
          Luxus Magazin
          Luxus Shops

          Kommentar

          Lädt...
          X