Zum Inhalt springen

Mailform Plus Template: nicht valide, nicht w3c konform

Erstellt am 4. Oktober 2007 · 15 Antworten · letzte Antwort am 27. Mai 2008

Tags: Formhandler, Frage

Luxi ·

Hallo Leute,

ich arbeite zur Zeit daran meine TYPO3 Seite komplett valide, also w3c konform, zu machen.
Jedoch stosse ich bei meinen Template für Mailform Plus auf ein Problem.
Ich habe das beiliegende Standarttemplate genommen und es einfach an meine Bedürfnisse angepasst. Nun möchte ich den Code valide machen, ohne ihn zu zerstören. Ich komme nicht weiter ohne, dass die Extension funktionsunfähig wird.

Hier der HTML-Code des Templates:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>Yaml Template</title>
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
<!-- (en) Add your meta data here -->
<!-- (de) Fügen Sie hier Ihre Meta-Daten ein -->

<link href="css/central.css" rel="stylesheet" type="text/css"/>
<!--[if lte IE 7]>
<link href="/css/my_patches/patch_layout.css" rel="stylesheet" type="text/css" />
<![endif]-->
</head>
<body>

<form name="form"###PID###""action="index.php?id=###PID###" method="post">

	<!-- versteckte Felder begin -->
	###HIDDENFIELDS###
	<input type="hidden" name="L" value="0" />
	<input type="hidden" name="id" value="###PID###" />
	<input type="hidden" name="submitted" value="1"  />
	<!-- versteckte Felder end -->

         <fieldset style= "width:400px">
     	<table width="400" border="0" cellspacing="0" cellpadding="0">

	       <tr>
				<td><label>Name:</label>
                         </td>
			<td>
				<div align="right">
				<input type="text" name="Name" id="name" value="###value_name###" size="45" ###error_name### /></div>
			</td>
	       </tr>

	       <tr>
			<td>
                         	<label>Telefonnummer:</label>
                         </td>
			<td>
				<div align="right">
				<input type="text" name="Telefon" id="telefon" value="###value_telefon###" size="45" /></div>
			</td>

	       </tr>
	       <tr>
			<td>
                         	<label>E-Mail:</label>
                         </td>
			<td>
				<div align="right">
				<input type="text" name="E-Mail" id="email" value="###value_email###" size="45" ###error_email### /></div>

			</td>
	       </tr>
	       <tr>
			<td>
                         	<label>Betreff:</label>
                         </td>
			<td>
				<div align="right">

				<input type="text" name="Betreff" id="betreff" value="###value_betreff###" size="45" ###error_email### /></div>
			</td>
	       </tr>
	       <tr>
			<td>
				<label>Ihre Nachricht:</label>
                         </td>
			<td>

                         	<div align="right">
                         	<textarea name="Nachricht" id="Nachricht" value="###value_nachricht###" rows="7" cols="50"></textarea></div>
                         </td>
	       </tr>
	       <tr>
			<td>

                         </td>
			<td>

                                 <div align="right">
                                 <input type="submit" value="absenden" />
                                 </div>
                         </td>
	       </tr>
	</table>
         </fieldset>

</body>
</html>
Unbekannter Benutzer ·

JA klar,

das </form> fehlt, das müsstest du mal am Ende noch einfügen und das die Marker nicht erlaubt sind ist auch logisch, bau das mal ein in die Seite und lass es dann validieren, das templaqte allein validiert halt nicht.

Luxi ·

So sieht das HTML des Template aus. Es ist zwar nun Valide, aber funtkioniert nicht mehr 🙁 ...

<form name="form###PID###" action="index.php?id=###PID###" method="post">
	
	<!-- versteckte Felder begin -->
	###HIDDENFIELDS###
	<input name="L" value="0" type="hidden" />
	<input name="id" value="###PID###" type="hidden" />
	<input name="submitted" value="1" type="hidden" />
	<!-- versteckte Felder end -->
	<table width="200" border="0" cellpadding="0" cellspacing="0">
         
     	
	       <tr>
				<td><label>Name:</label>
                         </td>
			<td>
				
				<input name="name" id="name" value="###value_name###" size="40"  type="text" />
			</td>
	       </tr>
	       <tr>
			<td>
                         	<label>Telefonnummer:</label>
                         </td>
			<td>
				
				<input name="telefon" id="telefon" value="###value_telefon###" size="40" type="text" />
			</td>
	       </tr>
	       <tr>
			<td>
                         	<label>E-Mail:</label>
                         </td>
			<td>
				
				<input name="email" id="email" value="###value_email###" size="40" type="text" />
			</td>
	       </tr>
	       <tr>
			<td>
                         	<label>Betreff:</label>
                         </td>
			<td>
				
				<input name="betreff" id="betreff" value="###value_betreff###" size="40" type="text" />
			</td>
	       </tr>
	       <tr>
			<td>
				<label>Ihre Nachricht:</label>
                         </td>
			<td>
                         	
                         	<textarea name="textareaName" id="Nachricht" value="###value_text###" rows="7" cols="40"></textarea>
                         </td>
	       </tr>
	       <tr>
			<td>

                         </td>
			<td>
                                 
                                 <input value="absenden" type="submit" />
                                 
                         </td>
	       </tr>
	
         </table>
</form>
Unbekannter Benutzer ·

hallo,

mich würde interessieren, was jetzt genau nicht mehr funktioniert.
Ich entwickle Mailformplus jetzt seit 3.9.1 und habe noch keine Anfragen bezüglich solcher Probleme bekommen.

Versuch doch einmal eines der Beispieltemplates von Version 4.0.3. Die sollten XHTML konform sein. Damit kannst du dein aktuelles Template vergleichen.

Ansonsten, sag bitte welche Fehler auftreten bzw. was nicht funktioniert, es gibt sicher eine einfache Lösung dafür.

lg,
Reinhard

chapolote ·

Ich will mich mal an diesen Thread anhängen:

Voraussetzung: Mailformplus in Typo3 installiert, Grundlagen meiner Seiten ist das neueste Yaml für Tempalvoila.

Füge ich jetzt auf eine Seite das MailformPlus 4.03 Formular ein und gebe als Template das mitgelieferte mailformplus_demo.html an und konfiguriere sonst nicht weiter, ensteht eine Seite, die laut Validierung 55 Fehler anzeigt, Doctype ist XHTML 1.0 Transitional.

Erstaunlich dabei ist auch, daß die selbe Seite ohne eingefügtes Mailformplus-Formular als konform eingestuft wird, mit dem Formular wird aber plötzlich auch Code nicht validiert, der mit dem Mailformpluscode eigentlich nichts zu tun hat.

@mtd04014
Wenn es weiterhilft, hab ich Dir eine Seite vorbereitet, wo Du Dir das ansehen kannst. Link bei Interesse...

Validieren tu ich übrigens mit der Webdeveloper-Toolbar in Firefox.

Gruß, chapolote

Unbekannter Benutzer ·

Hallo,

tatsächlich erzeugt das mitgelieferte template mailformplus_demo.html ein paar fehler:

- ein input tag bei den radio-buttons ist nicht geschlossen.
- der zu beginn des formulars geöffnete div wird nicht geschlossen.
- die select-box topic hat kein attribut id.
- anscheinend gibts auch ein problem mit dem name attribut des formulars.

sonst werden bei mir keine weiteren fehler angezeigt. weder vom w3 validator, noch von den firefox webdeveloper tools.

anbei das aktualisierte template

<!-- ###TEMPLATE_FORM### begin -->
###ERROR###
<form method="post" action="###REL_URL###" enctype="multipart/form-data">
	<fieldset>
		<legend>Personal Information</legend>
<input type="hidden" name="id" value="###PID###" />
<input type="hidden" name="submitted" value="1" />
<input type="hidden" name="L" value="###value_L###" />
<input type="hidden" name="type" value="###value_type###" />


<div>
	<label for="name" accesskey="n">Name</label>
	###error_name###<input type="text" name="name" id="name" value="###value_name###" tabindex="1"/>
	<br/>
	<label for="subject" accesskey="s">Subject</label>
	###error_subject###<input type="text" name="subject" id="subject" value="###value_subject###" tabindex="2"/>
	<br/>
	<label for="email" accesskey="e">e-mail</label>
	###error_email###<input type="text" name="email" id="email" value="###value_email###" tabindex="3"/>
	<br/>
	<label for="phone" accesskey="p">Phone</label>
	###error_phone###<input type="text" name="phone" id="phone" value="###value_phone###" tabindex="4"/>
	<br/>
	<label for="topic" accesskey="t">Topic</label>
	###error_topic###<select id="topic" name="topic" style="width:320px;" tabindex="5">
		<option value="leer" ###selected_topic_leer###></option>
		<option value="webdesign" ###selected_topic_webdesign###>Webdesign</option>
		<option value="hosting" ###selected_topic_hosting###>Webhosting</option>
		<option value="price" ###selected_topic_price###>Price for...</option>
		<option value="feedback" ###selected_topic_feedback###>Feedback</option>
		</select>
	<br/>
	<label for="text" accesskey="c">Text</label>
	<textarea cols="50" rows="5" name="text" id="text" style="width:320px;" tabindex="6">###value_text###</textarea>
	<br/>
	<br /><p>Please contact me via:</p><br/>
	<input tabindex="7" type="radio" name="contact_via" value="email" id="contact_email" style="border-style:none;" ###checked_contact_via_email### /><label for="contact_email">e-mail </label>
	<input tabindex="8" type="radio" name="contact_via" value="phone" id="contact_phone" style="border-style:none;" ###checked_contact_via_phone### /><label for="contact_phone">Phone</label>
	<br/>
	<br />please send us your photo...<br/>
	<label for="photo" accesskey="f">Photo:</label><br/>
	    number of allowed files: ###photo_numberOfAllowedFiles###<br/>
	    allowed file types: ###photo_fileTypes###<br/>
	    allowed file size per picture: ###photo_fileSize###<br/>
	    already uploaded files: ###photo_numberOfUploadedFiles###<br/>
	    remaining files: ###photo_numberOfRemainingFiles###<br/>
	    ###error_photo######value_photo###<input type="file" name="photo" id="photo" size="20" maxlength="50000" accept="image" tabindex="9"/><br/>
	    <br/>
	<label for="cv" accesskey="v">CV:</label><br/>
	    number of allowed files: ###cv_numberOfAllowedFiles###<br/>
	    allowed file types: ###cv_fileTypes###<br/>
	    allowed file size per file: ###cv_fileSize###<br/>
	    already uploaded files: ###cv_numberOfUploadedFiles###<br/>
	    remaining files: ###cv_numberOfRemainingFiles###<br/>
	    ###error_cv######value_cv###<input type="file" name="cv" id="cv" size="20" maxlength="50000" accept="*.pdf,*.doc" tabindex="10"/>
	<br/>
	<input type="submit" value="submit" tabindex="11"/><br/>
###ADDITIONAL_MULTIPAGE###
</div>
</fieldset>
</form>
<!-- ###TEMPLATE_FORM### end -->
chapolote ·

Danke für die schnelle Antwort.

Das mit dem radio-buttons und dem div-Tag hab ich auch gefunden gehabt und korrigiert.

Es hagelte aber auch andere Fehlermeldungen, die ich momentan nicht nennen kann, da ich Typo3 komplett neu aufgesetzt habe. Werde das neue Template testen, sobald alles wieder läuft.

Verfolgst Du diesen Thread oder soll ich Dich dann beizeiten nochmals per PM kontaktieren?

Grüße,
chapolote

chapolote ·

Hallo Reinhard

es hagelt immer noch, also auch mit Deinem korrigierten Template, Fehler über Fehler, genau gesagt 47.

Wie gesagt: Grundlage ist yaml für templavoilá auf typo3, alles in aktuellster Version. Da ich das ganze aus anderen Gründen komplett frisch aufgesetzt hab, hab ich quasi ne jungfräuliche Installation.
Wenn Du jetzt folgenden Link öffnest, siehst Du, das die ganze Sache validiert wird:

http://www.maji-malaika.org/index.php?id=34

Gehst Du jetzt in der Navigation auf Level 1 (oben in der Tab-Navigation) hast Du im Prinzip die selbe Seite, nur mit dem Mailformplus-Formular ebenfalls in jungfräulicher (von Dir editierter) Version, d.h. ohne daß ich irgendwelche Anpassungen gemacht hätte.

Interessanterweise hagelt es jetzt auch Fehler, die den Yaml-Code mit einbeziehen, also beispielsweise die Navigation im Header-Container, wobei der Code ansich ja valide sein sollte (wie man ja auf der anderen Seite sieht)

Ich werd ehrlich gesagt aus den angezeigten Fehlern nicht wirklich schlau, zumindest würd ich da jetzt wohl tagelang recherchieren müßen um überhaupt den Faden zu finden. Aber vielleicht kannst Du ja was damit anfangen und sagst aha, das ist es....
Wäre toll zumindest 😉

Ich hoffe das hilft Dir erst mal weiter,
ein schönes Wochenende
chapolote

Unbekannter Benutzer ·

Die angezeigten Fehler auf der Seite http://www.maji-malaika.org/index.php?id=33 beziehen sich allesamt auf

1. Den Linkparameter PHPSESSID in den URLs. Da musst du eventuell dafür sorgen, dass das & in den Links escaped wird.

2. Einen geöffneten, aber nicht geschlossenen Kommentar nach dem Formular ( <!-- CO )

Das hat aber nichts mit Mailformplus zu tun. Ich hab den Formularcode aus dem Quellcode herauskopiert und mit dem Validator gecheckt. Da drin ist kein Fehler mehr.

lg,
Reinhard

chapolote ·

Guten Morgen Reinhard,

folgendes versteh ich dabei aber nicht:

validiere ich die oben angegebene Seite ohne Mailformplusformular, werden mir die Links im erzeugten Code des Webdeveloper-Validierers als z.B. index.php?id=13&amp;L=0 angezeigt, d.h. hier ist das & escaped.
Mit Mailformplus sieht der Link jetzt plötzlich so aus:
index.php?id=13&PHPSESSID=a5a7187b2b4e4738b314c61506e32888
d.h. jetzt wird plötzlich nicht mehr escaped und der übergebene Parameter aus der ersten Seite wird plötzlich zur PHPSESSID.

Warum verändert das bloße einfügen von mailformplus die gesamten Links von Yaml?
PHPSESSID... hat das nicht irgendwas mit Cookies zu tun? Bin leider kein PHPler, aber vielleicht liegt ja hier der Hund begraben?

Würd mich freuen, wenn Dir das nicht langsam zu viel wird hier und ich nochmal was von Dir höre hierzu,

Gruß, chapolote

nahuel ·

gibt es hierzu schon mehr infos?? hab das gleiche problem! sobald mailformplus drinnen ist wird die seite beim validator als fehlerhaft angezeigt.
allerdings nur wenn ich die seite vom validator auslesen lasse!

kopiere ich den quellcode aus dem browser gibt es keine PHPSESSID und somit keine fehler.