PHP : pb checkbox dans form

Fermé
Séverine - 10 avril 2007 à 11:55
 Séverine - 10 avril 2007 à 17:23
Bonjour à tous,

Voila mon pb, je bidouille avec le php alors pour faire un formulaire de contact j'ai été récupérer un assistant qui fonctionne très bien... sauf qu'il ne dit pas comment insérer des checkbox!!! J'ai donc pris mon courage a deux mains et j'ai tenté de les insérer ... ben ca ne marche pas!!! mes champs textes fonctionnent mais pas mes checkbox, en "lisant" le code que je comprends à peine, je vois bien que j'ai des paramêtres que je dois rajouter... si vous pouviez m'aider parce que je ne m'en sors pas toute seule!

Merci...
Le pb est à l'adresse suivante: http://www.terifik.fr/atila/form.php
Vous pouvez accéder au code source de la page avec "affichage"... enfin... je ne vous apprends rien la...!!!

Merci a ceux qui pourront m'aider!

Séverine.
A voir également:

4 réponses

Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 920
10 avril 2007 à 12:15
salut,

qu'est-ce qui ne fonctionne pas ?
tu ne réussis pas à retrouver les valeurs passées ?

pour les cases à cocher
0
En fait, les choix opérés par l'utilisateur via les cases à cocher n'apparaissent pas dans mon mail, j'ai bien ce qui est noté dans les zones de textes, mais ce qui est coché n'apparait pas!

Merci.
Sév
0
Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 920 > Séverine
10 avril 2007 à 14:18
re,

oui mais pour cela le source html de la page ne suffit pas...
peux-tu nous coller le bout de script qui traite les données et envoie le mail, s'il te plait ?
0
ben.... tout ce que j'ai, c'est ça, le form ne fait appel a aucun autre fichier, tout est dans la page... je te mets l'ensemble, parce que je ne sais pas ce que je dois t'envoyer:

<?php

$email_dest = "sev@terifik.fr";

if ($_POST['envoi']) {

$message_remerciement = "Merci de l'intérêt que vous nous portez. Votre demande sera traitée dans les meilleurs délais.";

// E-mail headers:
$headers ="MIME-Version: 1.0 \n";
$headers .="From: TE'RIFIK | STUDIO DE CRÉATION<severine@terifik.fr>\n";


$headers .="Content-Type: text/html; charset=iso-8859-1 \n";

$subject = "DEMANDE DE RENSEIGNEMENT";

$partie_entete = "<html><head>
<meta http-equiv=Content-Type content=text/html; charset=iso-8859-1>
</head>
<body bgcolor=#FFFFFF>";

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>Assistant d'envoi de formulaires</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="JavaScript"><!-- Hide script from older browsers
function verifSelection() {if (mail_form.champ1.value == "") {
alert("Merci de remplir ce champ")
return false
} if (mail_form.champ2.value == "") {
alert("Merci de remplir ce champ")
return false
} if (mail_form.champ3.value == "") {
alert("Merci de remplir ce champ")
return false
} if (mail_form.champ4.value == "") {
alert("Merci de remplir ce champ")
return false
} if (mail_form.champ5.value == "") {
alert("Merci de remplir ce champ")
return false
} if (mail_form.champ6.value == "") {
alert("Merci de remplir ce champ")
return false
} if (mail_form.zone_email.value == "") {
alert("Merci de remplir ce champ")
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
}if (mail_form.zone_texte.value == "") {
alert("N\'a pas souhaité apporté de commentaire")
return false
} } // Fin de la fonction

</script>
</head>

<body bgcolor="333333" link="#FF0099" vlink="#FF0066" alink="#FF0099">
<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();
}
?>
<div align="center"></div>
<table width="751" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td valign="top"><img src="http://www.terifik.fr/emailgolf/ies/haut.gif" width="751" height="24"></td>
</tr>
<tr>
<td valign="top"><img src="http://www.terifik.fr/emailgolf/ies/photo2.jpg" width="751" height="345"></td>
</tr>
<tr>
<td><table width="751" border="0" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF">
<tr>
<td width="212" valign="top"><img src="http://www.terifik.fr/emailgolf/ies/poisson.jpg" width="212" height="550"></td>
<td valign="top"> <table width="539" border="0" cellspacing="0" cellpadding="0">
<tr>
<td valign="top"> </td>
</tr>
<tr>
<td height="433" valign="top"> <table width="539" border="0" align="center" cellspacing="5">
<p align="center"> </p>
<tr>
<td height="2"><strong><font color="333333" size="2" face="Arial, Helvetica, sans-serif">JE
NE SOUHAITE PLUS ETRE CONTACTE</font></strong></td>
<td height="2"><input type="checkbox" name="choix" value="Je ne souhaite plus être contacté"></td>
</tr>
<tr>
<td height="3"> </td>
<td height="3"> </td>
</tr>
<tr>
<td colspan="2"><strong><font color="333333" size="2" face="Arial, Helvetica, sans-serif">JE
SOUHAITE AVOIR DE PLUS AMPLES INFORMATIONS SUR: </font></strong></td>
</tr>
<tr>
<td><font color="333333" size="2" face="Arial, Helvetica, sans-serif"><strong>BATIMENT</strong></font></td>
<td><input type="checkbox" name="choix" value="Je souhaite avoir de plus amples informations sur le BATIMENT"></td>
</tr>
<tr>
<td><font color="333333" size="2" face="Arial, Helvetica, sans-serif"><strong>SECURITE</strong></font></td>
<td><input type="checkbox" name="choix" value="Je souhaite avoir de plus amples informations sur la SECURITE"></td>
</tr>
<tr>
<td><font color="333333" size="2" face="Arial, Helvetica, sans-serif"><strong>GRANDE
HAUTEUR</strong></font></td>
<td><input type="checkbox" name="choix" value="Je souhaite avoir de plus amples informations sur la GRANDE HAUTEUR"></td>
</tr>
<tr>
<td width><font color="333333" size="2" face="Arial, Helvetica, sans-serif"><strong>INDUSTRIE</strong></font></td>
<td width><input type="checkbox" name="choix" value="Je souhaite avoir de plus amples informations sur l'INDUSTRIE"></td>
</tr>
<tr>
<td> </td>
<td width> </td>
</tr>
<tr>
<td><strong><font color="#333333" size="2" face="arial">ENTREPRISE</font></strong></td>
<td><input name="champ1" type="text"></td>
</tr>
<tr>
<td><strong><font color="#333333" size="2" face="arial">NOM
& PRÉNOM</font></strong></td>
<td> <div align="left">
<input name="champ2" type="text">
</div></td>
</tr>
<tr>
<td><strong><font color="#333333" size="2" face="arial">FONCTION</font></strong></td>
<td><input name="champ3" type="text"></td>
</tr>
<tr>
<td><strong><font color="#333333" size="2" face="arial">SERVICE</font></strong></td>
<td><input name="champ4" type="text"></td>
</tr>
<tr>
<td><strong><font color="#333333" size="2" face="arial">TÉLÉPHONE/FAX</font></strong></td>
<td><input name="champ5" type="text"></td>
</tr>
<tr>
<td width><strong><font color="#333333" size="2" face="arial">ADRESSE</font></strong></td>
<td><input name="champ6" type="text"></td>
</tr>
<tr>
<td><strong><font color="#333333" size="2" face="arial">MAIL</font></strong></td>
<td><input name="zone_email" type="text"></td>
</tr>
<tr>
<td valign="top"><strong><font color="#333333" size="2" face="arial">MESSAGE</font></strong></td>
<td><textarea name="zone_texte" cols="30" rows="8"></textarea></td>
</tr>
<tr>
<td valign="top"><input name="titre_zone_texte" type="hidden" value="MESSAGE">
<input name="titre_email" type="hidden" value="MAIL">
<input name="titre_champ1" type="hidden" value="ENTREPRISE">
<input name="titre_champ2" type="hidden" value="NOM & PRÉNOM">
<input name="titre_champ3" type="hidden" value="FONCTION">
<input name="titre_champ4" type="hidden" value="SERVICE">
<input name="titre_champ5" type="hidden" value="TEL/FAX">
<input name="titre_champ6" type="hidden" value="ADRESSE">
<input name="nbre_champs_texte" type="hidden" id="nbre_champs_texte2" value="6">
<input name="nbre_zones_texte" type="hidden" value="1">
<input name="nbre_zone_email" type="hidden" value="1">
<input name="choix" type="hidden" value="5">
</td>
<td> <div align="center">
<input type="reset" name="Reset" value="Effacer">
<input type="submit" name="envoi" value="Envoyer">
</div></td>
</tr>
</table></td>
</tr>
</table></td>
</tr>
</table></td>
</tr>
<tr>
<td height="61" background="http://www.terifik.fr/emailgolf/ies/bas.gif"><div align="center"><font color="0E3B01" size="1" face="Arial, Helvetica, sans-serif"><strong><font color="#FF0066">TE'RIFIK</font></strong>
- 1, rue andré marie ampère 57070 metz - Tél./fax:
03 87 74 50 35 - <a href="mailto:contact@terifik.fr">contact@terifik.fr</a>
-<a href="https://www.terifik.fr/" target="_blank"> www.terifik.fr</a><br>
TE’RIFIK Copyright © 2007 Tous droits réservés</font></div></td>
</tr>
</table>
</form>
</body>
</html>
0
Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 920
10 avril 2007 à 14:55
ba vi, tu le mets pas ton mail... ;o)

j'ai lu en travers mais ça risque de suffire.
il faut ajouter un traitement pour les checkbox comme pour les 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>";
} 


et dans le formulaire il faut nommer les checkbox comme tu as nommé les champs text (chkbox1, chkbox2...) pour pouvoir itérer dans ta boucle php.

pour la désincription il faut l'ajouter comme le courriel :
if ($_POST['nbre_zone_email'] != 0) {
$partie_zone_email = "<font face='Verdana' size='2' color='#003366'>" . $_POST['titre_email'] . " = " . $_POST['zone_email'] . "</font><br>";
} 


et coder l'équivalant du champ mail pour le premier chk.

il faut faire la même chose avec les cases à cocher qu'avec les zones de saisie.
je ne sais pas si c'est très compréhensible...

je ne suis pas très fort en php mais je trouve le script très lourd avec des conditions et des variables qui me semblent inutiles.
0
ca marche pas.... punaise... vive la prog!!!
0
Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 920 > Séverine
10 avril 2007 à 17:08
as-tu compris ce que j'essayais de te dire ?
quelle erreur as-tu ?
0
Séverine > Séverine
10 avril 2007 à 17:11
j'ai compris, apres... est ce que j'ai bien placé les choses... en fait je n'ai aucun message d'erreur, par contre, dans le mail récapitulatif de la demande, le choix des checkbox n'apparait pas du tout.
0
Z3d Messages postés 62 Date d'inscription samedi 10 février 2007 Statut Membre Dernière intervention 10 avril 2007 2
10 avril 2007 à 17:18
Suffit de remettre ton mail, lolll
0
je ne comprends pas pourquoi c si simple pour les zones de saisie et si compliqué pour les checkbox!!!! et je le mets ou le mail???
Quant au choix du php... j'en sais rien, parce que c comme ca... moi j'y connais pas grand chose, l'essentiel pour moi c que ca marche, et la... ca marche pas!
0