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

Petit nouveau ! | 5 Messages

22 sept. 2010, 14:00

Au secours!!!
je viens de me rendre compte que le formulaire de mon client est ok avec Mozi Firefox mais que IE bloque l'envoi du formulaire. Le form comprend un capcha simple dy type 2+2=
Je ne vois plus rien
Pb de code php avec IE (balises ???)
Merci de me dire
Merci!

voici le code
<?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]@c-carre.com'."\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>';

}





?>

ViPHP
xTG
ViPHP | 7331 Messages

22 sept. 2010, 14:30

Et ton formulaire dans tout ça ? ;)

formulaire le voici !
Invité n'ayant pas de compte PHPfrance

22 sept. 2010, 18:39

OUPS voici le formulaire
<?php } else { //Formulaire de CONTACT ?>

<script type="text/javascript">

window.addEvent('domready', function() {

	$('myForm').addEvent('submit', function(e) {

		//Prevents the default submit event from loading a new page.

		e.stop();

		//Empty the log and show the spinning indicator.

		$('fiche').set('html', '<p>chargement...</p>')

		//Set the options of the form's Request handler. 

		//("this" refers to the $('myForm') element).

		this.set('send', {

		method:'post',

		onComplete: function(response) { 

			

			$('fiche').set('html', response);

		}});

		//Send the form.

		this.send();

	});	

	var scrollBox1 = new MooScroll({selector:'#scroll'});

	

	

	

	});

</script>

<div id="scroll">

<p><strong>NOS AGENCES<br /> nord: 0262 30 74 46 | ouest 0262 24 54 95 | sud: 0262 49 40 64</strong></p>

<?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 } ?>

ViPHP
ViPHP | 5462 Messages

22 sept. 2010, 18:54

met les balises php stp

Mammouth du PHP | 19672 Messages

22 sept. 2010, 23:26

met les balises php stp
Ou formulé autrement, regarde ceci
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

avec les balises , désolé
Invité n'ayant pas de compte PHPfrance

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

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

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
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Mammouth du PHP | 19672 Messages

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.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

désolé cher modérateur
Invité n'ayant pas de compte PHPfrance

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

Mammouth du PHP | 19672 Messages

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.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

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"
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Petit nouveau ! | 5 Messages

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

Mammouth du PHP | 19672 Messages

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.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Petit nouveau ! | 5 Messages

23 sept. 2010, 14:03

je vois ça et te réponds. Merci

Petit nouveau ! | 5 Messages

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 ?