Aller au contenu

interprétation PHP différente sous IE


dldstyle

Sujets conseillés

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 :wacko:

Avez vous une explication SVP ?

Merci beaucoup par avance.

Lien vers le commentaire
Partager sur d’autres sites

Je viens de tester ta page et je ne vois pas 36 explications possibles :blush:

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 :hypocrite:

Lien vers le commentaire
Partager sur d’autres sites

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

Lien vers le commentaire
Partager sur d’autres sites

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 :blush:

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 :unsure: Avez vous le même souci sur ces deux pages avec IE ?

Avec ou sans javascript IE ne veut pas valider ma page, c'est dingue quand même, j'en perds mon latin.

Lien vers le commentaire
Partager sur d’autres sites

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...

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...