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