Formular mit eigenen Daten befüllen (klassisch)
Nachdem ein Formular gesendet wurde kann es nötig sein, dieses
wieder einzublenden damit der Nutzer z.B. Eingabefehler korrigieren
kann (E-Mail falsch oder ähnliches). Dazu müssen die gesendeten
Daten wieder in die Felder eingefügt werden. Da diese Methode
gerne für XSS-Angriffe genutzt wird, müssen die ankommenden
Daten gereinigt werden. Ebenfalls von Bedeutung ist der hohe Aufwand,
um Pulldowns oder Radiobuttons mit ihren alten Werten zu belegen.
Wir schauen uns hier eine viel einfachere Methode an.
Zuerst haben wir ein komplexeres Formular. Da
"action" nicht belegt ist, wird beim Absenden die selbe
Seite wieder geladen. Das werden wir zur Auswertung der Daten nutzen:
</p>
<form action="" method="post">
<input type="text" name="benutzername"><br />
<select name="status"><option value="schueler">Schüler</option><option value="student">Student</option><option value="unbekannt">Unbekannt</option></select><br />
<input type="radio" name="geschlecht" value="weiblich"> Weiblich<br />
<input type="radio" name="geschlecht" value="maennlich"> Männlich<br />
<input type="submit" name="Absenden" value="absenden"><br />
</form>
<p>
Um die ankommenden Daten auszulesen, wird vor dem Formular die
Datenausgabe eingebaut. Wir zeigen den Inhalt aller Felder untereinander
an. Durch den Aufruf von QB_SECUREPRINT stellen wir sicher, dass
kein XSS-Angriff möglich ist.
<br />
<?php
echo QB_SECUREPRINT(QB_HTTPVARS2ARRAY('benutzername')) . "<br />„;<br />
echo QB_SECUREPRINT(QB_HTTPVARS2ARRAY(’status‘)) . „<br />„;<br />
echo QB_SECUREPRINT(QB_HTTPVARS2ARRAY(‚geschlecht‘)) . „<br />„;<br />
?><br />
Um nun diese Daten bequem wieder in das Formular einzufügen,
werden wir das Pulldown und die Radiobuttons durch geeignete Funktionen
ersetzen:
<br />
<?php
<form action="" method="post">
<p> <input type="text" name="benutzername"
value="echo QB_SECUREPRINT(QB_HTTPVARS2ARRAY('benutzername')); ?>„></p>
<p> <select name="status"><br />
echo QB_ARRAY2PULLDOWN(
array('schueler'=>‚Schüler‘<br />
,’student’=>’Student‘<br />
,’unbekannt’=>’Unbekannt‘<br />
)<br />
,QB_HTTPVARS2ARRAY(’status‘)<br />
);<br />
?><br />
</select><br />
<?php
echo QB_ARRAY2RADIO(
'geschlecht'
,array('weiblich'=>‚Weiblich‘, ‚maennlich’=>’Männlich‘)<br />
,QB_HTTPVARS2ARRAY(‚geschlecht‘)<br />
);<br />
?></p>
<p> <input type="submit" name="Absenden" value="absenden"><br />
</form>
<p>?><br />