XHTML-konformes Formular mit Session-ID
Freitag, 2. September 2005 um 23:39 von Thomas S
Zufällig bin ich im XHTML-Forum über etwas gestolpert, das die Mail-Seiten von oesterchat.com endlich XHTML1.0-valide macht!
Das Problem ist bei den Mail-Formularen nämlich, dass Sessions benutzt werden und diese Sessions werden im Formular (genauer: im FORM-Element) mit einem INPUT-Element hinterlegt. Das sieht dann so aus:
<input type="hidden" name="PHPSESSID" value="12ab2345cd78901ef2gh34ij5ke6l78mn" />
Das INPUT-Element ist aber leider ein Inline-Element, das heißt, es muss innerhalb eines Block-Elements stehen (P, FIELDSET, …). Da das INPUT-Element mit der Session-ID automatisch eingefügt wird, ohne dass man das kontrollieren kann, steht es in nicht XHTML valider Weise genau hinter dem einleitenden <form>-Tag und noch vor dem <fieldset>-Tag anstatt dahinter.
<form action="formmail.cgi" method="post" enctype="application/x-www-form-urlencoded"> <input type="hidden" name="PHPSESSID" value="12ab2345cd78901ef2gh34ij5ke6l78mn" /> <fieldset> <!-- Formularfelder -->
Durch folgenden Eintrag in die Datei knapp vor dem Formular, wird das INPUT-Element nicht mehr hinter das <form>-Tag, sondern richtigerweise hinter das <fieldset>-Tag gesetzt:
/* Damit das INPUT-Element mit der Session-ID nicht hinter FORM, sondern hinter FIELDSET steht und valider XHTML-Quellcode möglich wird:
url_rewriter.tags bestimmt, wenn Unterstützung für transparente SID aktiviert ist, welche HTML-Tags so umgeschrieben werden, dass sie die Session-ID beinhalten.
Grundeinstellung a=href,area=href,frame=src,input=src,form=fakeentry,fieldset=
Anmerkung: Wenn Sie XHTML-konform sein wollen, müssen Sie den form-Eintrag entfernen und Ihre Formularfelder zwischen <fieldset>-Tags setzen.
Quelle: http://www.php-center.de/de-html-manual/ref.session.html */
ini_set("url_rewriter.tags","a=href,area=href,frame=src,input=src,fieldset=");
Das sieht dann folgendermaßen aus:
<form action="formmail.cgi" method="post" enctype="application/x-www-form-urlencoded"> <fieldset> <input type="hidden" name="PHPSESSID" value="12ab2345cd78901ef2gh34ij5ke6l78mn" /> <!-- Formularfelder -->
Wundervoll! :-)
3 Kommentare vorhanden
Abgelegt unter OesterChat


