[IE] bug sur les formulaires, l'avez vous aussi constaté ?

bug sur les formulaires, l'avez vous aussi constaté ? [IE] - HTML/CSS - Programmation

Marsh Posté le 13-10-2004 à 15:20:42    

Bonjour à tous,
Je me suis pas mal excité sur un problème avec un formulaire depuis quelques jours et j'ai réussi à reproduire et à cerner le souci.
j'aimerai savoir si vous l'avez déjà rencontré (sinon, c'est peu être un nouveau bug, qui sait) et surtout si vous arrivez à le reproduire.
Voici les instructions :
 
Le bug se produit avec Internet Explorer (j'ai une v6), et se situe au moment de l'envoi des infos d'un formulaire avec les caractèristiques suivantes :
method : post
enctype : multipart/form-data

Code :
  1. exemple :
  2. <form name="monForm" method="post" action="test.asp" enctype="multipart/form-data">


Il faut ensuite que le document HTML contenant ce formulaire soir en charset iso-8859-1 :

Code :
  1. exemple de tag meta :
  2. <META http-equiv=Content-Type content="text/html; charset=iso-8859-1">


Il faut aussi que le dernier champ du formulaire soit un input de type "checkbox" ou "radio".
Enfin, il faut que l'un des champs du formulaire (un input type=text par exemple ou un textarea) contienne au moins un caractère du charset windows-1252 (par exemple issu d'un copier/collé de MS Word -> ‚ƒ„…†‡ˆ‰Š‹Œ‘’“”•–—˜™š›œŸ , voir par exemple http://psacake.com/web/0302-b.asp )
ET que le dernier champ du formulaire de type "checkbox" ou "radio" ne soit pas coché.
Et là c'est le drame.
 
IE envoie les infos du formulaire, mais elles sont mal formées et le début est tronqué, résultat les logiciels ne peuvent pas traiter les valeurs. ASP par exemple n'arrive donc pas à répartir les valeurs dans la collection request.form.
 
Comment donc voir qu'il y a une erreur ?
Il suffit pour cela d'afficher les données "brutes" d'envoi (request.binaryread) en définissant l'action du formulaire comme pointant vers un fichier de ce type (là j'ai qu'un exemple en ASP, mais on devrait avoir le même résultat en PHP normalement, selon ma théorie)
 
exemple de fichier test.asp :

Code :
  1. <%
  2. Response.ContentType = "text/plain"
  3. response.binarywrite(request.binaryread(Request.TotalBytes))
  4. %>


 
on constate donc que la première ligne est tronquée et qu'il manque

Code :
  1. -----------------------------7d46b38300302
  2. Content-Disposition: form-data; name="

au début des données.
 
Note : 7d46b38300302 varie à chaque envoi du formulaire, là j'ai juste copié un cas particulier.
 
Donc forcement ça marche moins bien.
 
Par contre si on coche la checkbox" ou "radio" ou qu'on a pas enctype="multipart/form-data" ou encore que le charset de la page est windows-1252 ou qu'il n'y a pas de caractère windows-1252 dans aucun champs, ça marche.  
C'est sur que c'est pas un cas qu'on rencontre souvent, mais quand même...
 
Donc si vous aussi vous constatez ce bug en suivant mes instructions, ben c'est que c'est pas ma faute et je vous en remercie :)


Message édité par nima le 13-10-2004 à 15:23:18
Reply

Marsh Posté le 13-10-2004 à 15:20:42   

Reply

Marsh Posté le 15-10-2004 à 17:10:19    

le bug semble bien confirmé de mon côté, j'ai vérifié l'échange HTTP avec Ethereal et le début des donnée est bien tronqué (en rouge).  :

Citation :

POST /test/phpinfo.php HTTP/1.1
Accept: */*
Referer: http://xxxxx/testfiche.html
Accept-Language: fr
Content-Type: multipart/form-data; boundary=---------------------------7d42af224079e
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)
Host: xxxxxxx
Content-Length: 9442
Connection: Keep-Alive
Cache-Control: no-cache
 
[ICI IL MANQUE LE DEBUT DES DONNEES]
fich_brou_raison_sociale"
 
TOTO
-----------------------------7d42af224079e
Content-Disposition: form-data; name="fich_brou_logo"; filename=""
Content-Type: application/octet-stream
[...]


 
Alors que cela devrait normalement donner :
 

Citation :

POST /test/phpinfo.php HTTP/1.1
Accept: */*
Referer: http://xxxxx/testfiche.html
Accept-Language: fr
Content-Type: multipart/form-data; boundary=---------------------------7d433a2ad0410
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)
Host: xxxxxxxx
Content-Length: 9622
Connection: Keep-Alive
Cache-Control: no-cache
 
-----------------------------7d433a2ad0410
Content-Disposition: form-data; name="fich_brou_raison_sociale"
TOTO
-----------------------------7d433a2ad0410
Content-Disposition: form-data; name="fich_brou_logo"; filename=""
Content-Type: application/octet-stream
[...]


 
Si jamais vous aviez 5 minutes pour essayer de votre côté, n'hésitez pas à me dire ce que ça fait chez vous.
Merci :)


Message édité par nima le 15-10-2004 à 17:22:55
Reply

Marsh Posté le 15-10-2004 à 22:19:47    

Recoucou !
Savez vous s'il existe un système de bug tracking chez microsoft pour IE ?
J'aimerai voir si ce bug a déjà été recenssé...
 
Merci.

Reply

Marsh Posté le 19-11-2004 à 09:44:55    

nima a écrit :

Recoucou !
Savez vous s'il existe un système de bug tracking chez microsoft pour IE ?
J'aimerai voir si ce bug a déjà été recenssé...
 
Merci.


 
Bonjour Nima,
 
J'ai la même anomalie que toi et j'aimerais savoir si tu as trouvé une solution ou une réponse à to problème.
 
Merci d'avance.
 
Jean Pierre

Reply

Marsh Posté le 20-09-2005 à 13:16:03    

Oups désolé, je ne surveillait pas ce sujet... je n'ai donc pas vu ton message.
As tu trouvé depuis le temps ?
Sinon, la seule solution que j'ai trouvé c'est de mettre un champ hidden qui sert à rien à la fin du formulaire, comme ça il ne fini pas avec un checkbox ou radio et le bug ne se produit pas.
En tout cas, ça en dit long sur le code de IE...ça doit pas être joli joli...

Reply

Marsh Posté le 05-09-2007 à 11:09:46    

nima a écrit :

Oups désolé, je ne surveillait pas ce sujet... je n'ai donc pas vu ton message.
As tu trouvé depuis le temps ?
Sinon, la seule solution que j'ai trouvé c'est de mettre un champ hidden qui sert à rien à la fin du formulaire, comme ça il ne fini pas avec un checkbox ou radio et le bug ne se produit pas.
En tout cas, ça en dit long sur le code de IE...ça doit pas être joli joli...


Génial...4heures que je galère avec ce problème :
envoi en php dans un champ "description d'un lieu" contenant un texte copié collé de word qui utilise des caractères tel que œ, ǽ ...
la requete post est tronquée sous internet explorer 6 mais pas sur firefox.
Solution:
placer un champ hidden juste après l'ouverture de la balise form, c'est lui qui prendra  :bounce:  
Merci encore.

Reply

Marsh Posté le 05-09-2007 à 12:12:47    

putain le déterrage de topic [:tinostar]

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed