Übergeben von Werten in HTML Formularfeld
Maresa P.
- php
0 Dieter Raber0 Gun0 Thomas Luethi0 Tom
Hallo,
ich schleife einen String in einem verstecktem Formularfeld auf eine andere Seite mit.
Der String bekomme ich vorher aus einer textarea, welche durch Post übermittelt wird.
Sieht dann so aus:
<input type="hidden" name="vari" value="<?= $_POST["vari"]?>">
su, nun hab ich aber ein Problem, sobald in die textarea am Anfang Doublequotes (") eingegeben werden, da der HTML Code dann nichtmehr stimmt und ich auf der Zielseite den String nur bis zum ersten Doublequote übermittelt bekomme. Ausserdem werden die Quotes automatisch von PHP maskiert, wenn sie per Post gesendet werden.
Wie umgehe ich das Problem, bzw. wie übermittle ich sauber einen String über 3 Dateien (ohne Session, Cookie usw..)
Vielen Dank für euere Hilfe
Maresa P.
Hallo,
Du kannst ihn z.B. mit urlencode behandeln.
Dieter
Hallo,
vielleicht folgendes als Ansatz?
Du hast die Möglichkeit, onSubmit zu reagieren
<form action="..." onsubmit="chkvalues()">
In chkvalues (benötigt natürlich aktiviertes Javascript) kannst Du dann Feldinhalte analysieren und ändern, z.B. störende Zeichen entfernen/ändern/maskieren und den geänderten Text wieder in das Formularfeld schreiben, damit der POST den geänderten Wert schickt.
Das Ausführen des POST kannst Du hier auch beeinflussen, indem Du mit "return" arbeitest. So kannst Du z.B. den Anwender zwingen, nur "zulässige" Eingaben abzuschicken...
<form action="..." onsubmit="return chkvalues()">
function chkvalues() {
if (...)
return true; // Submit wird ausgeführt
else
return false; // Submit wird nicht ausgeführt
}
Gun
Hallo,
Wie umgehe ich das Problem, bzw. wie übermittle ich sauber einen String über 3 Dateien (ohne Session, Cookie usw..)
Behandle ihn jeweils mit htmlentities() oder htmlspecialchars().
Wenn die " durch nervige Magie zu " werden, brauchst Du
auch noch stripslashes().
PHP-Manual: String-Funktionen:
http://www.php.net/manual/de/ref.strings.php
Es koennte z.B. so gehen (ungetestet):
<input type="hidden" name="vari" value="<?php echo htmlspecialchars(stripslashes($_POST["vari"])) ?>">
Gruesse,
Thomas
Hello,
Ich sortiere meine Daten-Eingabefelder, Entscheidungs-Felder und Buttons etc alle:
<input type="text" name="data[name]" ...>
<textarea name="data[text1]" ...></textarea>
<input type="submit" name="btn[speichern]" value="speichern">
usw.
$_data = strip($_POST["data"]); ## Strip entfernt rekursiv alle \
$hidden = base64_encode(serialize($_data));
<input type="hidden" name="hid[all]" value="<?php echo $hidden; ?>">
Durch das encoden mit base64_encode() kann man reinschreiben, was man will...
Liebe Grüße aus http://www.braunschweig.de
Tom