dldstyle Posté 14 Mars 2007 Posté 14 Mars 2007 Il faut qu'on m'explique là, je ne comprends plus rien. J'ai un formulaire de demande de renseignements sur un site immobilier. Il y a une vérification en javascript et si c'est bon je renvoie sur la même page avec un test en PHP pour vérifier la présence de variable dans l'URL pour ensuite traiter les données. Fonctionne très bien sous FF et Safari mais pas du tout sous IE alors que le test est fait du cpoté du serveur, cela devrait être identique ?!! La page en question est ici : http://www.immobilier-gers.com/envoyer_ami2.php?id=64 Mon code source : <div id="contenu_popup"> <?php if (!isset($_GET['nom'])) { ?> <form action="envoyer_ami.php" method="get" name="amigo" onsubmit="return sendAmigo()";> <input name="id" type="hidden" value="<?= $_GET['id']?>" /> <table width="450" border="0" cellspacing="0" cellpadding="20"> <tr> <td width="131" class="form_align_r">* <?= $lang['amigo_nom'] ?></td> <td width="233"><input name="nom" type="text" class="inputxt" onfocus="this.className='inputxt_focus';" onblur="this.className='inputxt';" /></td> </tr> <tr> <td class="form_align_r">* <?= $lang['amigo_ami'] ?></td> <td><input name="ami" type="text" class="inputxt" onfocus="this.className='inputxt_focus';" onblur="this.className='inputxt';" /></td> </tr> <tr> <td class="form_align_r">* <?= $lang['amigo_email'] ?></td> <td><input name="email" class="inputxt" type="text" onfocus="this.className='inputxt_focus';" onblur="this.className='inputxt';" /></td> </tr> <tr> <td class="form_align_r"><?= $lang['amigo_mess'] ?></td> <td> </td> </tr> <tr> <td colspan="2"><textarea name="message" onfocus="this.className='textarea_focus';" onblur="this.className='';"></textarea></td> </tr> <tr> <td> </td> <td><input value="valider" src="img/bt_valid_<?= $lg ?>.png" name="valid" type="image" width="115" height="23" class="bt" /></td> </tr> </table> </form> <?php } else { if (!empty($_GET['nom'])) {$nom = $_GET['nom'];} else { $error = 1;} if (!empty($_GET['ami'])) {$ami = $_GET['ami'];} else { $error = 1;} if (!empty($_GET['email'])) {$email = $_GET['email'];} else { $error = 1;} $idbien = $_GET['id']; if (!empty($_GET['message'])) {$message = $_GET['message'];} if (!isset($error)) { IE reloade la page et réaffiche le formulaire sans passer par les tests PHP Avez vous une explication SVP ? Merci beaucoup par avance.
Harry_20 Posté 14 Mars 2007 Posté 14 Mars 2007 Je viens de tester ta page et je ne vois pas 36 explications possibles Ce n'est pas le script PHP qui pose problème mais le Javascript (ce qui est plausible vu qu'il peut être interprété différemment selon le navigateur). Essaie de valider un formulaire vide dans les 2 navigateurs ... le résultat est très parlant pour moi. Comme tu précises dans ta demande, un code serveur est exécuté par le serveur ... et donc ne dépend pas des ressources client Du coup j'ai préféré abandonner le Javascript ... je sais pas pourquoi
Mikiman Posté 14 Mars 2007 Posté 14 Mars 2007 Salut, Je voulais juste te conseiller de mettre un htmlentities à tes données GET : if (!empty($_GET['nom'])) {$nom = htmlentities($_GET['nom'], ENT_QUOTES);} else { $error = 1;}if (!empty($_GET['ami'])) {$ami = htmlentities($_GET['ami'], ENT_QUOTES);} else { $error = 1;}if (!empty($_GET['email'])) {$email = htmlentities($_GET['email'], ENT_QUOTES);} else { $error = 1;}$idbien = $_GET['id'];if (!empty($_GET['message'])) {$message = htmlentities($_GET['message'], ENT_QUOTES);} Histoire que les visiteurs n'entrent pas du code dans ta page. Cordialement, Mikiman
dldstyle Posté 14 Mars 2007 Auteur Posté 14 Mars 2007 Salut,Je voulais juste te conseiller de mettre un htmlentities à tes données GET : Merci pour ton conseil. Je viens de tester ta page et je ne vois pas 36 explications possibles Ce n'est pas le script PHP qui pose problème mais le Javascript (ce qui est plausible vu qu'il peut être interprété différemment selon le navigateur).[...] J'ai eu le même raisonnement que toi mais en supprimant le javascript sur la page d'origine j'ai le même problème Avez vous le même souci sur ces deux pages avec IE ? Page avec js Page sans js Avec ou sans javascript IE ne veut pas valider ma page, c'est dingue quand même, j'en perds mon latin.
Harry_20 Posté 14 Mars 2007 Posté 14 Mars 2007 Maintenant, la page avec le Javascript fonctionne dans les 2 navigateurs ! J'ai une erreur sur la page qui ne comprend pas le script en question dans IE !
dldstyle Posté 14 Mars 2007 Auteur Posté 14 Mars 2007 Ne me demandez pas pourquoi mais en supprimant le focus automatique au chargement de la page cela ne se produit plus ! L'objet du problème... <body onLoad="document.amigo.nom.focus()"> Merci microsoft...
MarvinLeRouge Posté 14 Mars 2007 Posté 14 Mars 2007 Et si tu mets ce focus dans une fonction javascript quelconque appelée au chargement ?
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant