Problème formulaire qui marche sous FF, mais pas sous IE

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Problème formulaire qui marche sous FF, mais pas sous IE

Re: Problème formulaire qui marche sous FF, mais pas sous IE

par Cyrano » 23 sept. 2010, 16:43

Donc il y a un problème coté JavaScript qui intercepte les données.

En principe, ça ne fonctionne pas tout seul : tu as du ajouter du code JavaScript propre à cette page, sauf que tu as du introduire une erreur. Et ce n'est plus un problème de PHP ni de HTML. Il faudrait te servir d'un outil de débogage dans IE pour tenter de voir s'il n'y aurait pas un problème majeur quelque part.

Re: Problème formulaire qui marche sous FF, mais pas sous IE

par xavcan » 23 sept. 2010, 16:04

en supprimant la partie mootools du code ça marche, le form part mais la page est démontée après l'envoi évidemment
ai remplacé par mootools dernière version et même problème. SI on remet le code mootools Ie ne récupère rien du tout

un idée qlq'un?

Re: Problème formulaire qui marche sous FF, mais pas sous IE

par Cyrano » 23 sept. 2010, 14:22

:shock: Là c'est assez surprenant.

Ce que je vérifierais :
  • Que le code HTML de mon formulaire est valide;
  • Que le code source sous IE et sous Firefox sont strictement les mêmes, donc en les faisant afficher dans chaque navigateur;
  • Dans le bouton de type image au lieu de submit, ajouter un gestionnaire d'évènement « onclick="this.submit();" »

Re: Problème formulaire qui marche sous FF, mais pas sous IE

par xavcan » 23 sept. 2010, 14:17

effectivment il y a différence
FF:
array(6) {
["name"]=>
string(6) "xavier"
["mail"]=>
string(18) "[email protected]"
["doc"]=>
string(2) "on"
["franchise"]=>
string(2) "on"
["capcha"]=>
string(1) "4"
["message"]=>
string(11) "test de xav"
}

et IE:
array(0) {
}

donc acte, tu ferais quoi ?

Re: Problème formulaire qui marche sous FF, mais pas sous IE

par xavcan » 23 sept. 2010, 14:03

je vois ça et te réponds. Merci

Re: Problème formulaire qui marche sous FF, mais pas sous IE

par Cyrano » 23 sept. 2010, 13:49

Donc si la récupération est bonne, que se passe-t-il au niveau du traitement.

Comprends bien que le débogage implique qu'on vérifie ce qui ne fonctionne pas aussi bien que ce qui fonctionne correctement. C'est comme la programmation elle-même, on fait de la logique. Donc on doit cerner l'endroit où se trouve le problème. Tu peux commencer par faire afficher ce qui est reçu, et dans le cas présent avec les deux navigateurs. Dans le début du code qui reçoit les données, ajoute ceci :
echo("<pre>\n");
var_dump($_POST);
echo("</pre>\n");
Essaye ton formulaire avec les deux navigateurs et compare les résultats. Si ils sont identiques en tous points, alors le problème est ailleur et plus loin dans le déroulement du code. S'il y a une différence, alors effectivement le problème est avant dans le formulaire.

Re: Problème formulaire qui marche sous FF, mais pas sous IE

par xavcan » 23 sept. 2010, 12:33

ben non je l'ai écrit de la même façon de chaque côté.

fichier send.php: $capcha = $_POST['capcha'];
et formulaire : <li class="simpleinput"><label>Sécurité:<span style="font-size:11px;"> (combien font 2 + 2?)</span></label><input type="text" name="capcha"></input></li>

FF reconnait bien mais pas IE avons nous une erreur dans le code avec des balises par exemple?
Merci encore pour ton aide

Re: Problème formulaire qui marche sous FF, mais pas sous IE

par zeus » 23 sept. 2010, 12:30

Désolé cher modérateur pour ces deux erreurs de débutant mais l'intention n"était pas de faire "mal" avec ces majuscules et ces erreurs dans le code.
Je n'ai jamais dit le contraire, mais il n'en reste pas moins que lire les règlements d'un forum quand on arrive dessus, c'est une marque de politesse et de respect qui permet d'éviter les "erreurs de débutants"

Re: Problème formulaire qui marche sous FF, mais pas sous IE

par Cyrano » 23 sept. 2010, 12:13

Le problème semble se situer au niveau du traitement et non du formulaire lui-même.

Es-tu bien certain de récupérer la bonne valeur du champ de saisie ($_POST['capcha'] : Attention, tu as peut-être écrit $_POST['captcha'] avec un « t » en plus comme il faut l'écrire contrairement à ce que tu as mis en valeur d'attribut name du champ dans le formulaire.

Re: Problème formulaire qui marche sous FF, mais pas sous IE

par désolé cher modérateur » 23 sept. 2010, 12:05

Désolé cher modérateur pour ces deux erreurs de débutant mais l'intention n"était pas de faire "mal" avec ces majuscules et ces erreurs dans le code.

Pour la précision utile : le formulaire en IE n'envoie pas le message et répond par une réponse sur la validité de la réponse au captcha (même si bonne évidement)
vous pouvez essayer sur le site en direct: http://www.stopinsectes.com/corporate/contact/

Merci beaucoup
Xav

Re: PB FORUMIARE QUI NE MARCHE PAS AVEC ie MAIS FF YES

par Cyrano » 23 sept. 2010, 11:33

Déjà en HTML, la balise <input> est une balise dite « vide», donc on écrit pas <input ></input> mais <input /> si on fait du XHTML ou simplement <input> en HTML4

Ensuite, dire « Ça ne marche pas » est tr`s insuffisant, on ne peut pas vraiment savoir de quoi il est au juste question comme problème : problème d'affichage ? problème d'envoi où il ne se passe rien ? autre (et dans ce cas quoi ) ?

Sois clair et précis dans tes questions, ça résoudra les 3/4 du problème pour la simple raison que tu auras bien compris la nature du problème lui-même et il ne restera qu'à trouver le correctif qui est le plus souvent mineur.

Re: Problème formulaire qui marche sous FF, mais pas sous IE

par zeus » 23 sept. 2010, 11:32

Modération :
Merci de ne pas abuser des capitales dans ton titre.
C'est moins lisible et ça n'apporte rien de plus.

Ajouté à l'oubli des balises pour ton code, je trouve que ça fait pas mal.

Peut être que commencer par lire les règlements serait une bonne idée

Re: PB FORUMIARE QUI NE MARCHE PAS AVEC ie MAIS FF YES

par avec les balises , désolé » 23 sept. 2010, 11:20

voici avec les balises
le formulaire est dans une page type
<?php if (class_exists('MailPress')) MailPress::form(); ?>  

<form id="myForm" method="POST" action="http://www.stopinsectes.com/wp-content/themes/StopFinal/send.php" name="formulaire">

<ul id="form">

	<li class="simpleinput"><label>Nom complet:</label><input type="text" name="name"></input></li>

	<li class="simpleinput"><label>Téléphone:</label><input type="text" name="tel"></input></li>

    <li class="simpleinput"><label>Adresse:</label><input type="text" name="adresse"></input></li>

	<li class="simpleinput"><label>Ville:</label><input type="text" name="ville"></input></li>

    <li class="simpleinput"><label>Code Postal:</label><input type="text" name="codepostal"></input></li>

	<li class="simpleinput"><label>Email:</label><input type="text" name="mail"></input></li>

    

	<li><label>Je souhaite:</label>

    <input type="checkbox" name="doc"></input> recevoir une documentation<br />

    <input type="checkbox" name="appel"></input> la visite d'un commercial, pour un diagnostic<br />et un devis gratuit<br />

    </li>



    

    <li><label>Vous souhaitez nous rencontrer pour:</label></li>

    <li><label>Insectes</label>

    <input type="checkbox" name="desinsectisation"></input> désinsectisation<br />

    <input type="checkbox" name="desinfection"></input> désinfection<br />

    <input type="checkbox" name="demoustication"></input> démoustication<br />

	<input type="checkbox" name="jardin"></input> traitement des jardins<br />

	<input type="checkbox" name="denrees"></input> fumigation des denrées stockées<br />

    </li>

    

	<li><label>Rongeurs</label>

    <input type="checkbox" name="deratisation"></input> dératisation

    </li>

    

    <li><label>Pigeons</label>

    <input type="checkbox" name="depigeonnage"></input> dépigeonnage<br />

    <input type="checkbox" name="chauvesouris"></input> chauve-souris<br />

	</li>

    

	<li><label>Termites</label>

    <input type="checkbox" name="preventif"></input> traitement préventif<br />

    <input type="checkbox" name="curatif"></input> traitement curatif<br />

    <input type="checkbox" name="charpentes"></input> traitement des charpentes<br />

    <input type="checkbox" name="art"></input> fumigation mobilier et objets d'art<br />

	</li>

    

    <li><label>Franchise</label>

    <input type="checkbox" name="franchise"></input> merci de m'adresser votre documentation<br />

	</li>

    

	

    <li><label for=message>Commentaires:</label><textarea class="format" name="message" rows="4"></textarea></li>

    <li class="simpleinput"><label>Sécurité:<span style="font-size:11px;"> (combien font 2 + 2?)</span></label><input type="text" name="capcha"></input></li>

    <li><input id="send" type="image" src="<?php bloginfo('template_url'); ?>/img/boutonenvoyer.gif" width="77" height="22" value="submit" border="0" /></li>

   

</ul>

</form>

</div>

<?php } ?>
le fichier send.php
<?php 

// récupération des variables



$i=0;



foreach ($_POST as $key => $value){

    if ($i == 0) {$allpost = '&'.$key.'='.$value;}

    if ($i>0) {$allpost .= '&'.$key.'='.$value;}

    

    $i++;

}

$name = $_POST['name'];

$tel = $_POST['tel'];

$adresse = $_POST['adresse'];

$ville = $_POST['ville'];

$mail = $_POST['mail'];





$codepostal = $_POST['codepostal'];

$capcha = $_POST['capcha'];



$doc = $_POST['doc'];

$appel = $_POST['appel'];



$desinsectisation = $_POST['desinsectisation'];

$desinfection = $_POST['desinfection'];

$demoustication = $_POST['demoustication'];

$jardin = $_POST['jardin'];

$denrees = $_POST['denrees'];



$deratisation1 = $_POST['deratisation'];



$depigeonnage = $_POST['depigeonnage'];

$chauvesouris = $_POST['chauvesouris'];



$preventif = $_POST['preventif'];

$curatif = $_POST['curatif'];

$charpentes = $_POST['charpentes'];

$art = $_POST['art'];



$franchise = $_POST['franchise'];



$message = $_POST['message'];





// On peuple

if (!empty($desinsectisation)) {$un = '<li>désinsectisation</li>'."\n";}

if (!empty($desinfection)) {$deux = '<li>désinfection</li>'."\n";}

if (!empty($demoustication)) {$trois = '<li>démoustication</li>'."\n";}

if (!empty($jardin)) {$quatre = '<li>traitement des jardins</li>'."\n";}

if (!empty($denrees)) {$onze = '<li>fumigation des denrées stockées</li>'."\n";}



if (!empty($deratisation)) {$cinq = '<li>deratisation</li>'."\n";}

if (!empty($depigeonnage)) {$six = '<li>depigeonnage</li>'."\n";}

if (!empty($chauvesouris)) {$sept = '<li>chauve-souris</li>'."\n";}



if (!empty($preventif)) {$huit = '<li>traitement préventif anti-termites</li>'."\n";}

if (!empty($curatif)) {$neuf = '<li>traitement curatif anti-termites</li>'."\n";}

if (!empty($charpentes)) {$douze = '<li>traitement des charpentes</li>'."\n";}

if (!empty($art)) {$treize = '<li>fumigation du mobilier et des objets d\'art</li>'."\n";}



if (!empty($franchise)) {$dix = '<li>demande d\'informations sur la franchise</li>'."\n";}



if (!empty($doc)) {$doc = 'oui';} else {$doc = 'non';}

if (!empty($appel)) {$appel = 'oui';} else {$appel = 'non';}





    

    $html = '<h3>Données client :</h3><span style="text-transform:uppercase; font-size:large;">'.$name.'</span></strong><br />';

    $html .= 'Téléphone: '.$tel.'<br />Adresse: '.$adresse.'<br />Ville: '.$ville.'<br/>Mail : <a href="mailto:'.$mail.'">'.$mail.'</a><br />Code Postal: '.$codepostal.'<br />';

    $html .= 'Demande de documentation: '.$doc.'<br />';

    $html .= 'Appeler le client pour un devis gratuit: '.$appel.'<br />';

    $html .= '<h3>Rendez-vous souhaité:</h3><strong>Le client souhaite un rendez-vous pour:</strong><br />';

    $html .= '<ul>'.$un.$deux.$trois.$quatre.$onze.$cinq.$six.$sept.$huit.$neuf.$douze.$treize.$dix.'</ul><br />';

    $html .= '<h3>Commentaires : </h3>'.stripslashes(nl2br($message));





if ($capcha == 4) {

    if (mb_eregi("^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\.[a-z]{2,3}$", $mail) ) {

    

        //header html

        $headers = 'MIME-Version: 1.0' . "\n";

        $headers .= 'Content-type: text/html; charset=utf-8' . "\n";

        $headers .= 'From: "Stopinsectes.com"<[email protected]>'."\n";

        $headers .= 'Bcc: [email protected],[email protected],[email protected]'."\n";

        $reply = $headers.'Reply-to: [email protected]'."\n"; 

        

          if( mail('[email protected]','Formulaire Stop Insectes', $html, $reply) ){

            echo '<p><span class="blockquote">les informations on bien été envoyées</span></p>';

          }

          else{

            echo '<p><span class="blockquote">La fonction mail() est désactivée sur ce serveur.</p>';

          }

          

    } else {

    echo '<p><span class="blockquote">Veuillez vérifier votre adresse mail.</p>';

    }

    

} else {

echo '<p><span class="blockquote">Veuillez vérifier le code de sécurité</p>';

}
?>
merci pour vos réponses.
je ne trouve pas pourquoi ce code ne marche pas avec IE

Re: PB FORUMIARE QUI NE MARCHE PAS AVEC ie MAIS FF YES

par Cyrano » 22 sept. 2010, 23:26

met les balises php stp
Ou formulé autrement, regarde ceci

Re: PB FORUMIARE QUI NE MARCHE PAS AVEC ie MAIS FF YES

par stealth35 » 22 sept. 2010, 18:54

met les balises php stp