Onkel Schnitzel: Probleme mit Escape-Zeichen in Formularen

Beitrag lesen

Hallo Leute,

ich übertrage Daten von Formular A in Formular B und wieder zurück. Dabei macht mich das Verhalten des Escape-Zeichens irgendwie stutzig. Mal ein paar Beispiele:

Eintrag Text-Feld Formular A:  "TEST"  ->
hidden-Feld Formular B:  "TEST"  ->
ausgefülltes Text-Feld Formular A:  \

Formular A: 'TEST'   ->
hidden Formular B: 'TEST'   ->
Formular A: 'TEST'

Es zeigt sich also z.B. bei doppelten und einfachen Anführungszeichen ein unterschiedliches Verhalten. Ich hab schon alle möglichen Varianten mit stripslashes und htmlspecialchars durchprobiert, aber nie kommt in Formular A das gewünschte Ergebnis an. Sobald ich in Formular A z.B. doppelte Anführungszeichen benutze, kommt nach dem ersten Anführungszeichen nur noch das Escapezeichen und danach nichts mehr.

Ich behandle meine Einträge aus Formular A mit der folgenden Funktion :

function array_stripslashes(&$var) {
          if(is_string($var)) {
            $var = stripslashes($var);
          }
          else {
            if(is_array($var)) {
              foreach($var AS $key => $value) {
                array_stripslashes($var[$key]);
              }
            }
          }
  }

if(get_magic_quotes_gpc()) {
       array_stripslashes($_REQUEST);
}

Formular A ruft sich immer wieder selbst auf. Und obige Funktion hat sich bislang gut dafür bewährt (magic_quotes sind bei mir auf On). Wenn ich da beispielsweise "TEST" eingebe und abschicke, erscheint auch immer wieder "TEST". Aber wenn ich nun meine Daten an Formular B schicke und dann wieder zurück, tritt halt dieses "merkwürdige" Verhalten auf.

Wie gesagt, nun schon seit drei Stunden alle möglichen Kombinationen ausprobiert, auch die Funktion oben in Formular B eingefügt und angepasst bzw. aus Formular A entfernt, das Problem bleibt.

Ihr bestimmt nen Denkanstoß für mich :-)

Danke schonmal,
Onkel Schnitzel