Page 1 sur 1

formulaire (checkbox)

Posté : 24 mai 2007, 16:24
par cmoi
Bonjour,

je suis en train de réaliser un site qui contient 2 formulaires php. Le premier est un formulaire de contact pour lequel je n'ai pas de soucis. Le second est une demande de devis qui contient des checkbox : c'est là que ça coince ! Je ne m'en sors pas.

Je livre l'ensemble de la page à qui voudra bien s'y pencher et je l'en remercie.

Code : Tout sélectionner

<?php $email_dest = "[email protected]"; if ($_POST['envoi']) { $message_remerciement = "Merci pour votre message."; // E- mail headers: $headers ="MIME-Version: 1.0 \n"; $headers .="From: E-Prospect.biz<[email protected]>\n"; $headers .="Content-Type: text/html; charset=iso-8859-1 \n"; $subject = "Demande de devis"; $partie_entete = "<html><head> <meta http-equiv=Content-Type content=text/html; charset=iso-8859-1> </head> <body bgcolor=#FFFFFF>"; $partie_radiobutton = ""; $partie_checkbox = ""; $partie_champs_texte = ""; for ($a=1; $a<= $_POST['nbre_radiobutton']; $a++) { $partie_radiobutton .= "<font face='Verdana' size='2' color='#003366'>" . $_POST['titre_radio'.$a] . " = " . $_POST['radio'.$a] . "</font> <br> "; } for ($a=1; $a<= $_POST['nbre_checkbox']; $a++) { $partie_checkbox .= "<font face='Verdana' size='2' color='#003366'>" . $_POST['titre_box'.$a] . " = " . $_POST['box'.$a] . "</font> <br> "; } for ($a=1; $a<= $_POST['nbre_champs_texte']; $a++) { $partie_champs_texte .= "<font face='Verdana' size='2' color='#003366'>" . $_POST['titre_champ'.$a] . " = " . $_POST['champ'.$a] . "</font><br> "; } if ($_POST['nbre_zone_email'] != 0) { $partie_zone_email = "<font face='Verdana' size='2' color='#003366'>" . $_POST['titre_email'] . " = " . $_POST['zone_email'] . "</font><br> "; } if ($_POST['nbre_zones_texte'] != 0) { $partie_zone_texte = "<font face='Verdana' size='2' color='#003366'>" . $_POST['titre_zone'] . " = " . $_POST['zone_texte'] . "</font><br> "; $partie_zone_texte = stripslashes($partie_zone_texte); } $fin = "</body></html>"; $sortie = $partie_entete . $partie_radiobutton . $partie_checkbox . $partie_champs_texte . $partie_zone_email . $partie_zone_texte . $fin; // Send the e-mail if (@!mail($email_dest,$subject,$sortie,$headers)) { echo("Envoi du formulaire impossible"); } // Closing if !mail... } // Closing if edit ?> <html> <head> <title>Votre Devis - E-Prospect.biz - e-mailing b2b, newsletters</title> <meta name="description" content="E-Prospect.biz propose une gamme complète de services liés à la communication et la prospection par internet : e-mailing, constitution de fichiers, création de newsletters."> <meta name="keywords"content="marketing, emailing, e-mailing, mailing, fichier, fichiers d'entreprises, prospection, b2b, btob, newsletter, kompass"> <meta name="abstract" content="E-Prospect.biz propose une gamme complète de services liés à la communication et la prospection par internet : e-mailing, constitution de fichiers, création de newsletters."> <meta name="author" content="Alain Benlolo"> <meta name="copyright" content="Alain Benlolo 2007"> <meta http-equiv="Content-type" content="text/html;charset=iso-8859-1"> <meta name="language" content="fr"> <meta http-equiv="Content-Language" content="fr"> <meta name="robots" content="index, follow"> <meta name="revisit-after" content="30 days"> <meta name="reply-to" content="[email protected]"> <meta name="identifier-url" content="http://[email protected]"> <meta name="subject" content="E-Prospect.biz propose une gamme complète de services liés à la communication et la prospection par internet : e-mailing, constitution de fichiers, création de newsletters."> <meta name="expires" content="never"> <meta name="publisher" content="Alain Benlolo"> <meta name="location" content="France, FRANCE"> <meta name="rating" content="general"> <meta name="category" content="internet"> <meta name="Date-Creation-ddmmyyyy" content="07022007"> <meta name="DATE-REVISION-ddmmyyyy" content=""> <meta name="generator" content=""> <meta http-equiv="VW96.OBJECT TYPE" content="Document"> <link rel="stylesheet" href="style.css" type="text/css"> <script language="JavaScript"><!-- Hide script from older browsers function verifSelection() {if (mail_form.champ1.value == "") { alert("le champ raison_sociale doit être rempli") return false } if (mail_form.champ2.value == "") { alert("le champ nom doit être rempli") return false } if (mail_form.champ3.value == "") { alert("le champ adresse doit être rempli") return false } if (mail_form.champ4.value == "") { alert("le champ cp doit être rempli") return false } if (mail_form.champ5.value == "") { alert("le champ ville doit être rempli") return false }if (mail_form.zone_email.value == "") { alert("le champ mail doit être rempli") return false } invalidChars = " /:,;'" for (i=0; i<invalidChars.length; i++) { // does it contain any invalid characters? badChar = invalidChars.charAt(i) if (mail_form.zone_email.value.indexOf(badChar,0) > -1) { alert("Votre adresse e-mail contient des caractères invalides. Veuillez vérifier.") mail_form.zone_email.focus() return false } } atPos = mail_form.zone_email.value.indexOf("@",1) // there must be one "@" symbol if (atPos == -1) { alert('Votre adresse e-mail ne contient pas le signe "@". Veuillez vérifier.') mail_form.zone_email.focus() return false } if (mail_form.zone_email.value.indexOf("@",atPos+1) != -1) { // and only one "@" symbol alert('Il ne doit y avoir qu\'un signe "@". Veuillez vérifier.') mail_form.zone_email.focus() return false } periodPos = mail_form.zone_email.value.indexOf(".",atPos) if (periodPos == -1) { // and at least one "." after the "@" alert('Vous avez oublié le point "." après le signe "@". Veuillez vérifier.') mail_form.zone_email.focus() return false } if (periodPos+3 > mail_form.zone_email.value.length) { // must be at least 2 characters after the alert('Il doit y avoir au moins deux caractères après le signe ".". Veuillez vérifier.') mail_form.zone_email.focus() return false }} // Fin de la fonction </script> </head> <body bgcolor="#CCCCCC"> <div align="center"> <table width="90%" border="0" cellspacing="0" height="" bgcolor="#FFFFFF"> <tr> <td width="25%"><font face="Verdana, Arial, Helvetica, sans-serif" size="3"><a href="index.php"><b>Retour &agrave; l'accueil</b></a></font></td> <td>&nbsp;</td> <td width="70%">&nbsp;</td> </tr> <tr> <td width="25%" height="578" valign="top" bgcolor="#FF0000"> <p><b><font face="Verdana, Arial, Helvetica, sans-serif" color="#FFFF00" size="3"><br> Cr&eacute;ation</font></b></p> <p><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#000099"><a href="tarif.htm">- bases de donn&eacute;es compl&egrave;tes<br> - bases d'e-mails<br> - newsletter<br> - e-mailing</a></font></p> <p><font face="Verdana, Arial, Helvetica, sans-serif" size="3"><b><font color="#FFFF00">Campagne d'e-mailing compl&egrave;te</font></b></font></p> <p><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#000099"><a href="tarif.htm">- base d'e-mails<br> + newsletter<br> + lien de d&eacute;sabonnement<br> + e-mailing</a></font></p> <p><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#000099"> </font></p> <p> <div align="center"> <table width="90%" border="1" cellspacing="0" bgcolor="#FFFFFF" bordercolor="#FFFF00"> <tr> <td> <div align="center"><a href="conseils.htm">Conseils de marketing gratuits<br> semaine du 04 au 10/06</a></div> </td> </tr> </table> <hr> <font face="Verdana, Arial, Helvetica, sans-serif" size="2"><a href="contact.php">Contactez-moi</a></font> <hr> </div> <center> <table width="90%" border="0" cellspacing="0"> <tr> <td bgcolor="#FFFFFF"> <div align="center"><a href="http://www.ontroovtoo.com" target="_blank" title="Ontroovtoo.com, annuaire généraliste francophone"><img src="http://www.ontroovtoo.com/images/banniere2.jpg" width="200" height="28" border="0" alt="Ontroovtoo.com, annuaire généraliste francophone"></a><br> <font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#FF0000">Ontroovtoo.com,<br> r&eacute;f&eacute;rencement gratuit</font> </div> </td> </tr> </table> </center> </td> <td height="578" valign="top"> <div align="left"> <p><font face="Arial, Helvetica, sans-serif" size="2" color="#0066FF"></font></p> </div> </td> <td width="70%" height="578" valign="top"> <div align="left"> <p> <b><font face="Verdana, Arial, Helvetica, sans-serif" size="4" color="#000066">Devis</font><font face="Verdana, Arial, Helvetica, sans-serif" size="4" color="#000066"> : <br><form name="mail_form" method="post" action="<?=$PHP_SELF?>" onSubmit="return verifSelection()"> <div align="center"></div> <p align="center"> <?php if ($message_remerciement) { echo("<font face=Verdana size=2>"); echo(stripslashes($message_remerciement)); echo("</p></body></html>"); exit(); } ?> <table width="549" border="0" bgcolor="#FFFFFF" cellpadding="1" cellspacing="0" align="center" height="495"> <tr> <td align="center" valign="top"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="3" color="#000000">D&eacute;finissez votre demande et vos crit&egrave;res,<br> et recevez un comptage gratuit et une offre personnelle.</font><font face="Verdana, Arial, Helvetica, sans-serif" size="4" color="#000066"><br> </font></b></td> </tr> <tr> <td valign="top"> <p><b><font face="Verdana, Arial, Helvetica, sans-serif" size="4" color="#000066"><br> </font></b> <table width="75%" border="0"> <tr> <td width="6%"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#000000">Raison sociale<font size="1" color="#FF0000">*</font></font></b></td> <td colspan="3"> <font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#000000"><b> <input type="text" name="raison_sociale" size="80"> </b></font></td> <td width="4%">&nbsp;</td> <td width="16%">&nbsp;</td> </tr> <tr> <td width="6%"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#000000">Nom<font size="1" color="#FF0000">*</font></font></b></td> <td width="48%"> <font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#000000"><b> <input type="text" name="nom" size="80"> </b></font></td> <td width="3%"><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#000000"></font></td> <td width="23%"><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#000000"></font></td> <td width="4%">&nbsp;</td> <td width="16%">&nbsp;</td> </tr> <tr> <td width="6%"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#000000">Adresse<font size="1" color="#FF0000">*</font></font></b></td> <td width="48%"> <font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#000000"><b> <input type="text" name="adresse" size="80"> </b></font></td> <td width="3%"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#000000">CP<font size="1" color="#FF0000">*</font></font></b></td> <td width="23%"> <font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#000000"><b> <input type="text" name="cp"> </b></font></td> <td width="4%">&nbsp;</td> <td width="16%">&nbsp; </td> </tr> <tr> <td width="6%"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#000000">T&eacute;l.</font></b></td> <td width="48%"> <font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#000000"><b> <input type="text" name="tel"> Fax <input type="text" name="fax"> </b></font></td> <td width="3%"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#000000">Ville<font size="1" color="#FF0000">*</font></font></b></td> <td width="23%"> <font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#000000"><b> <input type="text" name="ville"> </b></font></td> <td width="4%">&nbsp;</td> <td width="16%">&nbsp; </td> </tr> <tr> <td width="6%"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#000000">E-Mail<font size="1" color="#FF0000">*</font></font></b></td> <td valign="top"> <font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#000000"><b> <input type="text" name="mail" size="80"> </b></font></td> <td valign="middle"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#000000">Pays</font></b></td> <td valign="top"> <font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#000000"><b> <input type="text" name="pays"> </b></font></td> <td width="4%">&nbsp;</td> <td width="16%">&nbsp;</td> </tr> </table> <hr> <table width="95%" border="0"> <tr> <td width="50%"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#000000">VOTRE DEMANDE</font></b></td> <td colspan="2"> <div align="left"><font size="2" color="#000000"><b><font face="Verdana, Arial, Helvetica, sans-serif">VOS CRITERES </font></b></font></div> </td> </tr> <tr> <td rowspan="2" width="50%" valign="top"> <font size="2" color="#000000"><b><font face="Verdana, Arial, Helvetica, sans-serif"> <input type="checkbox" name="bdd" value="checkbox"> Bases de donn&eacute;es B2B <br> <input type="checkbox" name="bdd-mails" value="checkbox"> Fichier d'e-mails<br> <input type="checkbox" name="newsletter" value="checkbox"> Newsletter<br> <input type="checkbox" name="desabo" value="checkbox"> Page de d&eacute;sabonnement<br> <input type="checkbox" name="envoi" value="checkbox"> Envoi d'un e-mailing<br> <input type="checkbox" name="campagne" value="checkbox"> Campagne d'e-mailing comp&egrave;te<br> </font></b></font></td> <td width="13%" valign="top"> <div align="left"><font size="2" color="#000000"><b><font face="Verdana, Arial, Helvetica, sans-serif">Activit&eacute;s</font></b></font></div> </td> <td width="37%" valign="top"> <b><font face="Verdana, Arial, Helvetica, sans-serif" size="4" color="#000066"> <textarea name="textarea" cols="40"></textarea> </font></b></td> </tr> <tr> <td width="13%" valign="top"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#000000">D&eacute;partements</font> </b></td> <td width="37%" valign="top"> <b><font face="Verdana, Arial, Helvetica, sans-serif" size="4" color="#000066"> <textarea name="textarea" cols="40"></textarea> </font></b></td> </tr> </table> <p><b><font size="4" face="Verdana, Arial, Helvetica, sans-serif" color="#000066"> <input type="submit" name=" O K 2" value="Envoyez !"> </font><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#000000"><font size="1" color="#FF0000">* </font></font></b><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#000000"><font size="1" color="#FF0000">renseignements obligatoires</font></font></p> </td> </tr> </table> <p align="center">&nbsp; <div align="center"></div> </form> Pour l'instant la page s'affiche sans erreur apparente. Sauf que sur "envoi" il ne se passe rien. Même pas l'activation des messages d'erreur pour compléter les champs obligatoires. Merci pour toute aide. </font></b></div> <p align="right"><font face="Arial, Helvetica, sans-serif" size="2" color="#0066FF"></font></p> </td> </tr> </table> </div> </body> </html>
La page s'affiche sans erreur apparente. Sauf que sur "envoi" rien ne se passe. Même pas les messages d'erreur pour les champs obligatoires si on les laisse vides.

Re: formulaire (checkbox)

Posté : 24 mai 2007, 16:54
par dunbar
Il y à une erreur ici
<!-- Hide script from older browsers
Tu neutralise tout le reste essaye comme ceci
<!-- Hide script from older browsers -->

Posté : 24 mai 2007, 17:02
par cmoi
J'ai enlevé du code ce qui relève de boutons radio (il n'y en a pas). J'ai comparé ligne par ligne cette page avec celle du formulaire de contact. Le code est identique. Là où il y a radiobutton dans l'un il y a checkbox dans l'autre (mais est-ce ça qu'il faut mettre ?). Les noms des champs différent bien sûr.
Revoici le code de la page après quelques modifs.

Code : Tout sélectionner

<?php $email_dest = "[email protected]"; if ($_POST['envoi']) { $message_remerciement = "Merci pour votre message."; // E- mail headers: $headers ="MIME-Version: 1.0 \n"; $headers .="From: E-Prospect.biz<[email protected]>\n"; $headers .="Content-Type: text/html; charset=iso-8859-1 \n"; $subject = "Demande de devis"; $partie_entete = "<html><head> <meta http-equiv=Content-Type content=text/html; charset=iso-8859-1> </head> <body bgcolor=#FFFFFF>"; $partie_checkbox = ""; $partie_champs_texte = ""; for ($a=1; $a<= $_POST['nbre_checkbox']; $a++) { $partie_checkbox .= "<font face='Verdana' size='2' color='#003366'>" . $_POST['titre_checkbox'.$a] . " = " . $_POST['checkbox'.$a] . "</font> <br> "; } for ($a=1; $a<= $_POST['nbre_champs_texte']; $a++) { $partie_champs_texte .= "<font face='Verdana' size='2' color='#003366'>" . $_POST['titre_champ'.$a] . " = " . $_POST['champ'.$a] . "</font><br> "; } if ($_POST['nbre_zone_email'] != 0) { $partie_zone_email = "<font face='Verdana' size='2' color='#003366'>" . $_POST['titre_email'] . " = " . $_POST['zone_email'] . "</font><br> "; } if ($_POST['nbre_zones_texte'] != 0) { $partie_zone_texte = "<font face='Verdana' size='2' color='#003366'>" . $_POST['titre_zone'] . " = " . $_POST['zone_texte'] . "</font><br> "; $partie_zone_texte = stripslashes($partie_zone_texte); } $fin = "</body></html>"; $sortie = $partie_entete . $partie_checkbox . $partie_champs_texte . $partie_zone_email . $partie_zone_texte . $fin; // Send the e-mail if (@!mail($email_dest,$subject,$sortie,$headers)) { echo("Envoi du formulaire impossible"); } // Closing if !mail... } // Closing if edit ?> <html> <head> <title>Votre Devis - E-Prospect.biz - e-mailing b2b, newsletters</title> <meta name="description" content="E-Prospect.biz propose une gamme complète de services liés à la communication et la prospection par internet : e-mailing, constitution de fichiers, création de newsletters."> <meta name="keywords"content="marketing, emailing, e-mailing, mailing, fichier, fichiers d'entreprises, prospection, b2b, btob, newsletter, kompass"> <meta name="abstract" content="E-Prospect.biz propose une gamme complète de services liés à la communication et la prospection par internet : e-mailing, constitution de fichiers, création de newsletters."> <meta name="author" content="Alain Benlolo"> <meta name="copyright" content="Alain Benlolo 2007"> <meta http-equiv="Content-type" content="text/html;charset=iso-8859-1"> <meta name="language" content="fr"> <meta http-equiv="Content-Language" content="fr"> <meta name="robots" content="index, follow"> <meta name="revisit-after" content="30 days"> <meta name="reply-to" content="[email protected]"> <meta name="identifier-url" content="http://[email protected]"> <meta name="subject" content="E-Prospect.biz propose une gamme complète de services liés à la communication et la prospection par internet : e-mailing, constitution de fichiers, création de newsletters."> <meta name="expires" content="never"> <meta name="publisher" content="Alain Benlolo"> <meta name="location" content="France, FRANCE"> <meta name="rating" content="general"> <meta name="category" content="internet"> <meta name="Date-Creation-ddmmyyyy" content="07022007"> <meta name="DATE-REVISION-ddmmyyyy" content=""> <meta name="generator" content=""> <meta http-equiv="VW96.OBJECT TYPE" content="Document"> <link rel="stylesheet" href="style.css" type="text/css"> <script language="JavaScript"><!-- Hide script from older browsers function verifSelection() {if (mail_form.champ1.value == "") { alert("le champ raison_sociale doit être rempli") return false } if (mail_form.champ2.value == "") { alert("le champ nom doit être rempli") return false } if (mail_form.champ3.value == "") { alert("le champ adresse doit être rempli") return false } if (mail_form.champ4.value == "") { alert("le champ cp doit être rempli") return false } if (mail_form.champ5.value == "") { alert("le champ ville doit être rempli") return false }if (mail_form.zone_email.value == "") { alert("le champ email doit être rempli") return false } invalidChars = " /:,;'" for (i=0; i<invalidChars.length; i++) { // does it contain any invalid characters? badChar = invalidChars.charAt(i) if (mail_form.zone_email.value.indexOf(badChar,0) > -1) { alert("Votre adresse e-mail contient des caractères invalides. Veuillez vérifier.") mail_form.zone_email.focus() return false } } atPos = mail_form.zone_email.value.indexOf("@",1) // there must be one "@" symbol if (atPos == -1) { alert('Votre adresse e-mail ne contient pas le signe "@". Veuillez vérifier.') mail_form.zone_email.focus() return false } if (mail_form.zone_email.value.indexOf("@",atPos+1) != -1) { // and only one "@" symbol alert('Il ne doit y avoir qu\'un signe "@". Veuillez vérifier.') mail_form.zone_email.focus() return false } periodPos = mail_form.zone_email.value.indexOf(".",atPos) if (periodPos == -1) { // and at least one "." after the "@" alert('Vous avez oublié le point "." après le signe "@". Veuillez vérifier.') mail_form.zone_email.focus() return false } if (periodPos+3 > mail_form.zone_email.value.length) { // must be at least 2 characters after the alert('Il doit y avoir au moins deux caractères après le signe ".". Veuillez vérifier.') mail_form.zone_email.focus() return false }} // Fin de la fonction </script> </head> <body bgcolor="#CCCCCC"> <div align="center"> <table width="90%" border="0" cellspacing="0" height="" bgcolor="#FFFFFF"> <tr> <td width="25%" valign="bottom"><font face="Verdana, Arial, Helvetica, sans-serif" size="3"><a href="index.php"><b>Retour &agrave; l'accueil</b></a></font></td> <td>&nbsp;</td> <td width="70%"><a href="http://www.e-prospect.biz"><img src="logo2.jpg" width="700" height="99" border="0"></a></td> </tr> <tr> <td width="25%" height="578" valign="top" bgcolor="#FF0000"> <p><b><font face="Verdana, Arial, Helvetica, sans-serif" color="#FFFF00" size="3"><br> Cr&eacute;ation</font></b></p> <p><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#000099"><a href="tarif.htm">- bases de donn&eacute;es compl&egrave;tes<br> - bases d'e-mails<br> - newsletter<br> - e-mailing</a></font></p> <p><font face="Verdana, Arial, Helvetica, sans-serif" size="3"><b><font color="#FFFF00">Campagne d'e-mailing compl&egrave;te</font></b></font></p> <p><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#000099"><a href="tarif.htm">- base d'e-mails<br> + newsletter<br> + lien de d&eacute;sabonnement<br> + e-mailing</a></font></p> <p><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#000099"> </font></p> <p> <div align="center"> <table width="90%" border="1" cellspacing="0" bgcolor="#FFFFFF" bordercolor="#FFFF00"> <tr> <td> <div align="center"><a href="conseils.htm">Mes conseils marketing<br> de la semaine</a></div> </td> </tr> </table> <hr> <font face="Verdana, Arial, Helvetica, sans-serif" size="2"><a href="contact.php">Contactez-moi</a></font> <hr> </div> <center> <table width="90%" border="0" cellspacing="0"> <tr> <td bgcolor="#FFFFFF"> <div align="center"><a href="http://www.ontroovtoo.com" target="_blank" title="Ontroovtoo.com, annuaire généraliste francophone"><img src="http://www.ontroovtoo.com/images/banniere2.jpg" width="200" height="28" border="0" alt="Ontroovtoo.com, annuaire généraliste francophone"></a><br> <font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#FF0000">Ontroovtoo.com,<br> r&eacute;f&eacute;rencement gratuit</font> </div> </td> </tr> </table> </center> </td> <td height="578" valign="top"> <div align="left"> <p><font face="Arial, Helvetica, sans-serif" size="2" color="#0066FF"></font></p> </div> </td> <td width="70%" height="578" valign="top"> <div align="left"> <p> <b><font face="Verdana, Arial, Helvetica, sans-serif" size="4" color="#000066">Devis</font><font face="Verdana, Arial, Helvetica, sans-serif" size="4" color="#000066"> : <br><form name="mail_form" method="post" action="<?=$PHP_SELF?>" onSubmit="return verifSelection()"> <div align="center"></div> <p align="center"> <?php if ($message_remerciement) { echo("<font face=Verdana size=2>"); echo(stripslashes($message_remerciement)); echo("</p></body></html>"); exit(); } ?> <table width="549" border="0" bgcolor="#FFFFFF" cellpadding="1" cellspacing="0" align="center" height="495"> <tr> <td align="center" valign="top"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="3" color="#000000">D&eacute;finissez votre demande et vos crit&egrave;res,<br> et recevez un comptage gratuit et une offre personnalis&eacute;e.</font><font face="Verdana, Arial, Helvetica, sans-serif" size="4" color="#000066"><br> </font></b></td> </tr> <tr> <td valign="top"> <p><b><font face="Verdana, Arial, Helvetica, sans-serif" size="4" color="#000066"><br> </font></b> <table width="75%" border="0"> <tr> <td width="6%"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#000000">Raison sociale<font size="1" color="#FF0000">*</font></font></b></td> <td colspan="3"> <font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#000000"><b> <input type="text" name="raison_sociale" size="80"> </b></font></td> <td width="4%">&nbsp;</td> <td width="16%">&nbsp;</td> </tr> <tr> <td width="6%"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#000000">Nom<font size="1" color="#FF0000">*</font></font></b></td> <td width="48%"> <font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#000000"><b> <input type="text" name="nom" size="80"> </b></font></td> <td width="3%"><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#000000"></font></td> <td width="23%"><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#000000"></font></td> <td width="4%">&nbsp;</td> <td width="16%">&nbsp;</td> </tr> <tr> <td width="6%"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#000000">Adresse<font size="1" color="#FF0000">*</font></font></b></td> <td width="48%"> <font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#000000"><b> <input type="text" name="adresse" size="80"> </b></font></td> <td width="3%"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#000000">CP<font size="1" color="#FF0000">*</font></font></b></td> <td width="23%"> <font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#000000"><b> <input type="text" name="cp"> </b></font></td> <td width="4%">&nbsp;</td> <td width="16%">&nbsp; </td> </tr> <tr> <td width="6%"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#000000">T&eacute;l.</font></b></td> <td width="48%"> <font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#000000"><b> <input type="text" name="tel"> Fax <input type="text" name="fax"> </b></font></td> <td width="3%"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#000000">Ville<font size="1" color="#FF0000">*</font></font></b></td> <td width="23%"> <font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#000000"><b> <input type="text" name="ville"> </b></font></td> <td width="4%">&nbsp;</td> <td width="16%">&nbsp; </td> </tr> <tr> <td width="6%"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#000000">E-Mail<font size="1" color="#FF0000">*</font></font></b></td> <td valign="top"> <font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#000000"><b> <input type="text" name="email" size="80"> </b></font></td> <td valign="middle"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#000000">Pays</font></b></td> <td valign="top"> <font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#000000"><b> <input type="text" name="pays"> </b></font></td> <td width="4%">&nbsp;</td> <td width="16%">&nbsp;</td> </tr> </table> <hr> <table width="95%" border="0"> <tr> <td width="50%"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#000000">VOTRE DEMANDE</font></b></td> <td colspan="2"> <div align="left"><font size="2" color="#000000"><b><font face="Verdana, Arial, Helvetica, sans-serif">VOS CRITERES </font></b></font></div> </td> </tr> <tr> <td rowspan="2" width="50%" valign="top"> <font size="2" color="#000000"><b><font face="Verdana, Arial, Helvetica, sans-serif"> <input type="checkbox" name="bdd" value="checkbox"> Bases de donn&eacute;es B2B <br> <input type="checkbox" name="bdd-mails" value="checkbox"> Fichier d'e-mails<br> <input type="checkbox" name="newsletter" value="checkbox"> Newsletter<br> <input type="checkbox" name="desabo" value="checkbox"> Page de d&eacute;sabonnement<br> <input type="checkbox" name="envoi" value="checkbox"> Envoi d'un e-mailing<br> <input type="checkbox" name="campagne" value="checkbox"> Campagne d'e-mailing compl&egrave;te<br> </font></b></font></td> <td width="13%" valign="top"> <div align="left"><font size="2" color="#000000"><b><font face="Verdana, Arial, Helvetica, sans-serif">Activit&eacute;s</font></b></font></div> </td> <td width="37%" valign="top"> <b><font face="Verdana, Arial, Helvetica, sans-serif" size="4" color="#000066"> <textarea name="textarea" cols="40"></textarea> </font></b></td> </tr> <tr> <td width="13%" valign="top"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#000000">D&eacute;partements</font> </b></td> <td width="37%" valign="top"> <b><font face="Verdana, Arial, Helvetica, sans-serif" size="4" color="#000066"> <textarea name="textarea" cols="40"></textarea> </font></b></td> </tr> </table> <p><b><font size="4" face="Verdana, Arial, Helvetica, sans-serif" color="#000066"> <input type="submit" name="OK" value="Envoyez !"> </font><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#000000"><font size="1" color="#FF0000">* </font></font></b><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#000000"><font size="1" color="#FF0000">renseignements obligatoires</font></font></p> </td> </tr> </table> <p align="center">&nbsp; <div align="center"></div> </form> </font></b></div> <p align="right"><font face="Arial, Helvetica, sans-serif" size="2" color="#0066FF"></font></p> </td> </tr> </table> </div> </body> </html>
Merci pour ta proposition Dunbar, mais apparemment cela ne change rien. Et dans le formulaire de contact, qui fonctionne, c'est écrit comme ça aussi.

Posté : 24 mai 2007, 18:33
par dunbar
Corrige ceci.

Code : Tout sélectionner

function verifSelection() { if (mail_form.raison_sociale.value == "") { alert("le champ raison_sociale doit être rempli") return false } if (mail_form.nom.value == "") { alert("le champ nom doit être rempli") return false } if (mail_form.adresse.value == "") { alert("le champ adresse doit être rempli") return false } if (mail_form.cp.value == "") { alert("le champ cp doit être rempli") return false } if (mail_form.ville.value == "") { alert("le champ ville doit être rempli") return false }if (mail_form.email.value == "") { alert("le champ email doit être rempli") return false } invalidChars = " /:,;'" for (i=0; i<invalidChars.length; i++) { // does it contain any invalid characters? badChar = invalidChars.charAt(i) if (mail_form.email.value.indexOf(badChar,0) > -1) { alert("Votre adresse e-mail contient des caractères invalides. Veuillez vérifier.") mail_form.email.focus() return false } } atPos = mail_form.email.value.indexOf("@",1) // there must be one "@" symbol if (atPos == -1) { alert('Votre adresse e-mail ne contient pas le signe "@". Veuillez vérifier.') mail_form.email.focus() return false } if (mail_form.email.value.indexOf("@",atPos+1) != -1) { // and only one "@" symbol alert('Il ne doit y avoir qu\'un signe "@". Veuillez vérifier.') mail_form.email.focus() return false } periodPos = mail_form.email.value.indexOf(".",atPos) if (periodPos == -1) { // and at least one "." after the "@" alert('Vous avez oublié le point "." après le signe "@". Veuillez vérifier.') mail_form.email.focus() return false } if (periodPos+3 > mail_form.email.value.length) { // must be at least 2 characters after the alert('Il doit y avoir au moins deux caractères après le signe ".". Veuillez vérifier.') mail_form.email.focus() return false
:wink:

Posté : 24 mai 2007, 19:20
par cmoi
j'ai refait totalement le formulaire en partant de celui qui fonctionne. A présent les messages d'erreur s'affichent si on ne remplit pas les champs obligatoires et le message s'en va. Problème il arrive vide : aucun renseignements.

J'ai modifié la partie checkbox en ajoutant des [].

Voici la nouvelle page :

Code : Tout sélectionner

<?php $email_dest = "[email protected]"; if ($_POST['envoi']) { $message_remerciement = "Merci pour votre message."; // E- mail headers: $headers ="MIME-Version: 1.0 \n"; $headers .="From: Contact E-Prospect.biz\n"; $headers .="Content-Type: text/html; charset=iso-8859-1 \n"; $subject = "Demande de devis"; $partie_entete = "<html><head> <meta http-equiv=Content-Type content=text/html; charset=iso-8859-1> </head> <body bgcolor=#FFFFFF>"; $partie_champs_texte = ""; for ($a=1; $a<= $_POST['nbre_champs_texte']; $a++) { $partie_champs_texte .= "<font face='Verdana' size='2' color='#003366'>" . $_POST['titre_champ'.$a] . " = " . $_POST['champ'.$a] . "</font><br> "; } if ($_POST['nbre_zone_email'] != 0) { $partie_zone_email = "<font face='Verdana' size='2' color='#003366'>" . $_POST['titre_email'] . " = " . $_POST['zone_email'] . "</font><br> "; } if ($_POST['nbre_zones_texte'] != 0) { $partie_zone_texte = "<font face='Verdana' size='2' color='#003366'>" . $_POST['titre_zone'] . " = " . $_POST['zone_texte'] . "</font><br> "; $partie_zone_texte = stripslashes($partie_zone_texte); } $fin = "</body></html>"; $sortie = $partie_entete . $partie_champs_texte . $partie_zone_email . $partie_zone_texte . $fin; // Send the e-mail if (@!mail($email_dest,$subject,$sortie,$headers)) { echo("Envoi du formulaire impossible"); } // Closing if !mail... } // Closing if edit ?> <html> <head> <title>Votre Devis - E-Prospect.biz - e-mailing b2b, newsletters</title> <meta name="description" content="E-Prospect.biz propose une gamme complète de services liés à la communication et la prospection par internet : e-mailing, constitution de fichiers, création de newsletters."> <meta name="keywords"content="marketing, emailing, e-mailing, mailing, fichier, fichiers d'entreprises, prospection, b2b, btob, newsletter, kompass"> <meta name="abstract" content="E-Prospect.biz propose une gamme complète de services liés à la communication et la prospection par internet : e-mailing, constitution de fichiers, création de newsletters."> <meta name="author" content="Alain Benlolo"> <meta name="copyright" content="Alain Benlolo 2007"> <meta http-equiv="Content-type" content="text/html;charset=iso-8859-1"> <meta name="language" content="fr"> <meta http-equiv="Content-Language" content="fr"> <meta name="robots" content="index, follow"> <meta name="revisit-after" content="30 days"> <meta name="reply-to" content="[email protected]"> <meta name="identifier-url" content="http://[email protected]"> <meta name="subject" content="E-Prospect.biz propose une gamme complète de services liés à la communication et la prospection par internet : e-mailing, constitution de fichiers, création de newsletters."> <meta name="expires" content="never"> <meta name="publisher" content="Alain Benlolo"> <meta name="location" content="France, FRANCE"> <meta name="rating" content="general"> <meta name="category" content="internet"> <meta name="Date-Creation-ddmmyyyy" content="07022007"> <meta name="DATE-REVISION-ddmmyyyy" content=""> <meta name="generator" content=""> <meta http-equiv="VW96.OBJECT TYPE" content="Document"> <link rel="stylesheet" href="style.css" type="text/css"> <script language="JavaScript"><!-- Hide script from older browsers function verifSelection() {if (mail_form.champ1.value == "") { alert("le champ Raison sociale doit être rempli") return false } if (mail_form.champ2.value == "") { alert("le champ Nom doit être rempli") return false } if (mail_form.champ3.value == "") { alert("le champ Adresse doit être rempli") return false } if (mail_form.champ4.value == "") { alert("le champ Code postal doit être rempli") return false } if (mail_form.champ5.value == "") { alert("le champ Ville doit être rempli") return false } if (mail_form.champ6.value == "") { alert("le champ Pays doit être rempli") return false } if (mail_form.champ7.value == "") { alert("le champ Tél doit être rempli") return false } if (mail_form.zone_email.value == "") { alert("le champ E-mail doit être rempli") return false } invalidChars = " /:,;'" for (i=0; i<invalidChars.length; i++) { // does it contain any invalid characters? badChar = invalidChars.charAt(i) if (mail_form.zone_email.value.indexOf(badChar,0) > -1) { alert("Votre adresse e-mail contient des caractères invalides. Veuillez vérifier.") mail_form.zone_email.focus() return false } } atPos = mail_form.zone_email.value.indexOf("@",1) // there must be one "@" symbol if (atPos == -1) { alert('Votre adresse e-mail ne contient pas le signe "@". Veuillez vérifier.') mail_form.zone_email.focus() return false } if (mail_form.zone_email.value.indexOf("@",atPos+1) != -1) { // and only one "@" symbol alert('Il ne doit y avoir qu\'un signe "@". Veuillez vérifier.') mail_form.zone_email.focus() return false } periodPos = mail_form.zone_email.value.indexOf(".",atPos) if (periodPos == -1) { // and at least one "." after the "@" alert('Vous avez oublié le point "." après le signe "@". Veuillez vérifier.') mail_form.zone_email.focus() return false } if (periodPos+3 > mail_form.zone_email.value.length) { // must be at least 2 characters after the alert('Il doit y avoir au moins deux caractères après le signe ".". Veuillez vérifier.') mail_form.zone_email.focus() return false }} // Fin de la fonction </script> </head> <body bgcolor="#CCCCCC"> <div align="center"> <table width="90%" border="0" cellspacing="0" height="" bgcolor="#FFFFFF"> <tr> <td width="25%" valign="bottom"><font face="Verdana, Arial, Helvetica, sans-serif" size="3"><a href="index.php"><b>Retour &agrave; l'accueil</b></a></font></td> <td>&nbsp;</td> <td width="70%"><a href="http://www.e-prospect.biz"><img src="logo2.jpg" width="700" height="99" border="0"></a></td> </tr> <tr> <td width="25%" height="578" valign="top" bgcolor="#FF0000"> <p><b><font face="Verdana, Arial, Helvetica, sans-serif" color="#FFFF00" size="3"><br> Cr&eacute;ation</font></b></p> <p><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#000099"><a href="tarif.htm">- bases de donn&eacute;es compl&egrave;tes<br> - bases d'e-mails<br> - newsletter<br> - e-mailing</a></font></p> <p><font face="Verdana, Arial, Helvetica, sans-serif" size="3"><b><font color="#FFFF00">Campagne d'e-mailing compl&egrave;te</font></b></font></p> <p><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#000099"><a href="tarif.htm">- base d'e-mails<br> + newsletter<br> + lien de d&eacute;sabonnement<br> + e-mailing</a></font></p> <p><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#000099"> </font></p> <p> <div align="center"> <table width="90%" border="1" cellspacing="0" bgcolor="#FFFFFF" bordercolor="#FFFF00"> <tr> <td> <div align="center"><a href="conseils.htm">Mes conseils marketing<br> de la semaine</a></div> </td> </tr> </table> <hr> <font face="Verdana, Arial, Helvetica, sans-serif" size="2"><a href="contact.php">Contactez-moi</a></font> <hr> </div> <center> <table width="90%" border="0" cellspacing="0"> <tr> <td bgcolor="#FFFFFF"> <div align="center"><a href="http://www.ontroovtoo.com" target="_blank" title="Ontroovtoo.com, annuaire généraliste francophone"><img src="http://www.ontroovtoo.com/images/banniere2.jpg" width="200" height="28" border="0" alt="Ontroovtoo.com, annuaire généraliste francophone"></a><br> <font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#FF0000">Ontroovtoo.com,<br> r&eacute;f&eacute;rencement gratuit</font> </div> </td> </tr> </table> </center> </td> <td height="578" valign="top"> <div align="left"> <p><font face="Arial, Helvetica, sans-serif" size="2" color="#0066FF"></font></p> </div> </td> <td width="70%" height="578" valign="top"> <div align="left"> <p> <p><b><font face="Verdana, Arial, Helvetica, sans-serif" size="4" color="#000066">Devis :</font></b></p> <p><form name="mail_form" method="post" action="<?=$PHP_SELF?>" onSubmit="return verifSelection()"> <div align="center"></div> <p align="center"> <?php if ($message_remerciement) { echo("<font face=Verdana size=2>"); echo(stripslashes($message_remerciement)); echo("</p></body></html>"); exit(); } ?> <table width="566" border="0" align="center"> <tr> <td><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Raison sociale <font color="#FF0000">*</font></font></td> <td> <font size="2"> <font face="Verdana, Arial, Helvetica, sans-serif"> <input name="champ1" type="text" size="50"> </font></font></td> </tr> <p align="center"> </p> <tr> <td><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Nom <font color="#FF0000">*</font> </font></td> <td> <input name="champ2" type="text" size="50"> </td> </tr> <tr> <td><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Adresse <font color="#FF0000">*</font> </font></td> <td> <input name="champ3" type="text" size="50"> </td> </tr> <tr> <td><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Code postal <font color="#FF0000">*</font> </font></td> <td> <input name="champ4" type="text"> </td> </tr> <tr> <td><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Ville <font color="#FF0000">*</font></font></td> <td> <input name="champ5" type="text" size="50"> </td> </tr> <tr> <td><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Pays <font color="#FF0000">*</font></font></td> <td> <input name="champ6" type="text" size="50" value="France"> </td> </tr> <tr> <td width><font face="Verdana, Arial, Helvetica, sans-serif" size="2">T&eacute;l <font color="#FF0000">*</font> </font></td> <td width> <input name="champ7" type="text"> </td> </tr> <tr> <td width><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Fax </font></td> <td width> <input name="champ8" type="text"> </td> </tr> <tr> <td width><font face="Verdana, Arial, Helvetica, sans-serif" size="2">E-Mail <font color="#FF0000">*</font> </font></td> <td width> <input name="zone_email" type="text" size="50"> </td> </tr> <tr> <td valign="top"><font face="Verdana, Arial, Helvetica, sans-serif" size="2"><b>VOS CRITERES</b></font></td> <td valign="top">&nbsp;</td> </tr> <tr> <td valign="top"><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Activit&eacute;s</font></td> <td valign="top"> <textarea name="zone_texte" cols="50" rows="5"></textarea> </td> </tr> <tr> <td valign="top"><font face="Verdana, Arial, Helvetica, sans-serif" size="2">D&eacute;partements</font></td> <td valign="top"> <textarea name="zone_texte" cols="50" rows="5"></textarea> </td> </tr> <tr> <td valign="top"><font face="Verdana, Arial, Helvetica, sans-serif" size="2"><b>VOS DEMANDES</b></font></td> <td>&nbsp;</td> </tr> <tr> <td valign="top" colspan="2"><font size="2" color="#000000"><b><font face="Verdana, Arial, Helvetica, sans-serif"> <input type="checkbox" name="site[]" value="bdd"> </font></b><font face="Verdana, Arial, Helvetica, sans-serif">Bases de donn&eacute;es B2B <br> <input type="checkbox" name="site[]" value="bdd-mails"> Fichier d'e-mails<br> <input type="checkbox" name="site[]" value="newsletter"> Newsletter<br> <input type="checkbox" name="site[]" value="desabo"> Page de d&eacute;sabonnement<br> <input type="checkbox" name="site[]" value="emailing"> Envoi d'un e-mailing<br> <input type="checkbox" name="site[]" value="campagne"> Campagne d'e-mailing comp&egrave;te</font></font></td> </tr> <tr> <td valign="top"><font face="Verdana, Arial, Helvetica, sans-serif" size="2"></font> </td> <td> <div align="center"> <input type="reset" name="Reset" value="Effacer"> <input type="submit" name="envoi" value="Envoyer"> </div> </td> </tr> </table> <div align="center"></div> </form> </div> <p align="center"><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#FF0000">* renseignements obligatoires</font></p> </td> </tr> </table> </div> </body> </html>