Archiv für den 02. September 2005

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

HTML 4.01 als XML?

Freitag, 2. September 2005 um 21:17 von Thomas S

Ich arbeite gerade an meiner Bookmarks- oder Lesezeichen-Liste und bin gerade dabei, eine Website hinzuzufügen, in der ich folgenden Text im Quellcode auf der Startseite am Anfang gefunden habe:

<?xml version=”1.0″ encoding=”iso-8859-1″?> <!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN”>

Quelle: http://www.silktide.com/sitescore

Manche Webdesigner lassen sich die merkwürdigsten Dinge einfallen. HTML 4.01 hat überhaupt nichts mit XML zu tun. Die erste Zeile mit der XML-Deklaration ist überflüssig und völlig falsch. Nur bei XHTML darf man es benutzen, da es eine XML-Datei kennzeichnet; HTML ist jedoch kein XML. Im Falle des IE ist sie sogar schlecht, da er dadurch in den Quirks-Mode flutscht. Jedoch ist es sowieso eine Quirks-Mode-Seite mit dieser Dokumenttyp-Deklaration ohne URL.

Doctypes, die man benutzen sollte: vom W3C empfohlene Liste von DTDs

Es wundert mich, dass kein XML-Namensraum im <html>-Tag angegeben wurde. ;)

Kommentar schreiben Abgelegt unter Kritiken


Webkrauts-Logo

Barcamp-Logo

BlogInfo

Kalender

September 2005
M D M D F S S
« Aug   Okt »
 1234
567891011
12131415161718
19202122232425
2627282930  

Neueste Beiträge

Kategorien

Monatsarchiv

Meta/Verwaltung