in bestimmten Fällen überträgt der Internet Explorer (getestet mit 5.5 und
6.0) den Inhalt des ersten Feldes in einem Formular nicht an den Server.
Die Bedingungen:
- <form enctype="multipart/form-data" method="post"
- <meta http-equiv="Content-type" content="text/html; charset=iso-8859-1">
- Sonderzeichen in einer textarea (z.B. Euro-Zeichen oder bei Cut&Paste aus
einer PDF-Datei)
Als Workaround habe ich ein dummy-Formularfeld ganz vorne in das Formular
eingefügt.
Kennt jemand diesen Bug? Ist ganz alleine der IE schuld, oder habe ich bei
der Charset-Angabe irgendwas falsch gemacht? Ich kann ja schlecht im Voraus
wissen welche Zeichen der Benutzer in das Fomularfeld eingibt...
Hier ein PHP-Script das das Problem demonstriert. Wenn man z.B. das Euro-
Zeichen eingibt wird das erste hidden-Formularfeld nicht übertragen.
http://www.mikrocontroller.net/test.php:
===========================
<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=iso-8859-1">
</head>
<body>
<form action="test.php" method="post" enctype="multipart/form-data">
<input type="hidden" name="hidden1" value="1">
<input type="hidden" name="hidden2" value="2">
<input type="hidden" name="hidden3" value="3">
<textarea name="textarea1" rows="10" cols="40"></textarea>
<input type="checkbox" name="checkbox1" value="1">
<input type="submit">
</form>
<pre>
<?
var_dump($_POST);
?>
</pre>
</body>
</html>
> in bestimmten Fällen überträgt der Internet Explorer (getestet mit 5.5 und
> 6.0) den Inhalt des ersten Feldes in einem Formular nicht an den Server.
> Die Bedingungen:
>
> - <form enctype="multipart/form-data" method="post"
> - <meta http-equiv="Content-type" content="text/html; charset=iso-8859-1">
> - Sonderzeichen in einer textarea (z.B. Euro-Zeichen oder bei Cut&Paste aus
> einer PDF-Datei)
tatsaechlich - kann ich nur bestaetigen.
Ist ja klar, dass man mit iso-8859-1 sowieso das Eurozeichen nicht
kodieren kann; aber, dass IE so komisch darauf reagiert, war mir
unbekannt.
> Als Workaround habe ich ein dummy-Formularfeld ganz vorne in das Formular
> eingefügt.
Wie sagt man "kludge" zu deutsch? :-}
Kodierung utf-8 anzuwenden waere vielleicht angebracht.
> Ich kann ja schlecht im Voraus
> wissen welche Zeichen der Benutzer in das Fomularfeld eingibt...
Na eben; aber, soche Probleme treten staendig auf, da
Browserhersteller form-submit nur bedingt implementiert haben.
> Hier ein PHP-Script das das Problem demonstriert.
Habe ich gerade eben mit CGI bestaetigt, um etwa Features in PHP
auszuschliessen.
http://ppewww.ph.gla.ac.uk/~flavell/charset/form-i18n.html (engl.) ist
sicher unvollstaendig, aber koennte vielleicht z. Orientierung helfen.
Gruesse
> Kodierung utf-8 anzuwenden waere vielleicht angebracht.
'tschuldigung - ich haette hier sicher sagen sollen, dass
NN4.*-Versionen in Umgang mit form-submit ueberhaupt nicht
utf-8-faehig sind, obwohl sie utf-8 ziemlich gut _darstellen_
koennen.
Also, im WWW generell koennte man unmoeglich fuer form-submit
_nur_ utf-8 anbieten.