8791 sujets

Développement web côté serveur, CMS

Bonjour,

J'ai quelques petits soucis lors de la création d'un formulaire de contact ( je suis débutant en php).

J'ai un formulaire de contact ( que vous pouvez tester ici : http://toujoursutile.fr/test/ et le source est ici : http://toujoursutile.fr/test/index.txt ).
Je ne comprends pas trop pourquoi il ne fonctionne pas ( le soucis vient des checkbox, mais je ne vois pas où).



A terme, le formulaire doit:
- récupérer les infos du formulaire.
- les envoyer à une adresse mail.
- les stocker dans une base de données.
- en fonction de la réponse aux radios, l'internaute doit être redirigé vers une page spécifique ( page1 s'il coche la première boîte, page2 si c'est la seconde etc.).

Pour l'instant, je me concentre surtout sur les 2 premiers points (récupérer les infos par un post, et les envoyer à une adresse). mais déjà, cela ne fonctionne pas.
Quelqu'un voit où est l'erreur ?
Merci d'avance.

K.
'lut,

La source est dispo ici : http://toujoursutile.fr/test/index.txt
J'ai fait cela pour éviter d'encombrer cette discussion.

Je te le mets ici quand même Smiley smile

<?php
// Couleur du texte des champs si erreur saisie utilisateur
$color_font_warn="#FF0000";
// Couleur de fond des champs si erreur saisie utilisateur
$color_form_warn="#FFCC66";
// Ne rien modifier ci-dessous si vous n’êtes pas certain de ce que vous faites !
$list['f_8']=array("Grignotage / quantité de nourriture"," Le stress professionnel ou familial"," Arrêt du sport ou manque d'activité physique"," Dépression"," Pilule contraceptive"," Grossesse"," Ménopause");
$list['f_9']=array("Les bras"," Hanches / fesses"," Taille / ventre"," Jambes / cuisses ");
if(isset($_POST['submit'])){
	$erreur="";
	// Nettoyage des entrées
	while(list($var,$val)=each($_POST)){
	if(!is_array($val)){
		$$var=strip_tags($val);
	}else{
		while(list($arvar,$arval)=each($val)){
				$$var[$arvar]=strip_tags($arval);
			}
		}
	}
	// Formatage des entrées
	$f_1=trim(ucwords(eregi_replace("[^a-zA-Z0-9éèà äö\ -]", "", $f_1)));
	$f_2=trim(ucwords(eregi_replace("[^a-zA-Z0-9éèà äö\ -]", "", $f_2)));
	$f_3=trim(ucwords(eregi_replace("[^a-zA-Z0-9éèà äö\ -]", "", $f_3)));
	$f_4=strip_tags(trim($f_4));
	$f_5=trim(eregi_replace("[^0-9\ +]", "", $f_5));
	$f_6=trim(eregi_replace("[^0-9+]", "", $f_6));
	$f_7=trim(eregi_replace("[^0-9+]", "", $f_7));
	// Verification des champs
	if(strlen($f_1)<2){
		$erreur.="<li><span class='txterror'>Le champ &laquo; Nom &raquo; est vide ou incomplet.</span>";
		$errf_1=1;
	}
	if(strlen($f_2)<2){
		$erreur.="<li><span class='txterror'>Le champ &laquo; Prénom &raquo; est vide ou incomplet.</span>";
		$errf_2=1;
	}
	if(strlen($f_3)<2){
		$erreur.="<li><span class='txterror'>Le champ &laquo; Date de Naissance &raquo; est vide ou incomplet.</span>";
		$errf_3=1;
	}
	if(strlen($f_4)<2){
		$erreur.="<li><span class='txterror'>Le champ &laquo; Email &raquo; est vide ou incomplet.</span>";
		$errf_4=1;
	}else{
		if(!ereg('^[-!#$%&\'*+\./0-9=?A-Z^_`a-z{|}~]+'.
		'@'.
		'[-!#$%&\'*+\/0-9=?A-Z^_`a-z{|}~]+\.'.
		'[-!#$%&\'*+\./0-9=?A-Z^_`a-z{|}~]+$',
		$f_4)){
			$erreur.="<li><span class='txterror'>La syntaxe de votre adresse e-mail n'est pas correcte.</span>";
			$errf_4=1;
		}
	}
	if(strlen($f_5)<2){
		$erreur.="<li><span class='txterror'>Le champ &laquo; Téléphone &raquo; est vide ou incomplet.</span>";
		$errf_5=1;
	}
	if(strlen($f_6)<2){
		$erreur.="<li><span class='txterror'>Le champ &laquo; Taille &raquo; est vide ou incomplet.</span>";
		$errf_6=1;
	}
	if(strlen($f_7)<2){
		$erreur.="<li><span class='txterror'>Le champ &laquo; Poids &raquo; est vide ou incomplet.</span>";
		$errf_7=1;
	}
	if($f_8==""){
		$erreur.="<li><span class='txterror'>Le champ &laquo; Quelles sont à votre avis les causes de votre prise de poids ? &raquo; n'a pas été défini.</span>";
		$errf_8=1;
	}
	if(!$f_9){
		$erreur.="<li><span class='txterror'>Le champ &laquo; Où sont situées vos rondeurs ? &raquo; requiert au moins une sélection.</span>";
		$errf_9=1;
	}
	if($erreur==""){
		// Création du message
		$titre="Message de votre site";
		$tete="From:Site@15minutes.com/\n";
		$corps.="Nom : ".$f_1."\n";
		$corps.="Prénom : ".$f_2."\n";
		$corps.="Date de Naissance : ".$f_3."\n";
		$corps.="Email : ".$f_4."\n";
		$corps.="Téléphone : ".$f_5."\n";
		$corps.="Taille : ".$f_6."\n";
		$corps.="Poids : ".$f_7."\n";
		$corps.="Quelles sont à votre avis les causes de votre prise de poids ? : ".$list['f_8'][$f_8]."\n";
		for($id=0; $id<count($list['f_9']); $id++){
			if($f_9[$id]==1){
				$corps.="Où sont situées vos rondeurs ? : ".$list['f_9'][$id]."\n";
			}
		}
		if(mail("testphp@yopmail.com", $titre, stripslashes($corps), $tete)){
			$ok_mail="true";
		}else{
			$erreur.="<li><span class='txterror'>Une erreur est survenue lors de l'envoi du message, veuillez refaire une tentative.</span>";
		}
	}
}
?>

<html>
<head>
    
<style type="text/css" media="screen"><!--
INPUT { color: #000; font-size: 11px; font-family: verdana, Arial, Helvetica, Geneva, Swiss, SunSans-Regular; background-color: #EEEEEE }
SELECT { color: #000; font-size: 11px; font-family: verdana, Arial, Helvetica, Geneva, Swiss, SunSans-Regular; background-color: #EEEEEE }
TEXTAREA { color: #000; font-size: 11px; font-family: verdana, Arial, Helvetica, Geneva, Swiss, SunSans-Regular; background-color: #EEEEEE }
.txterror { color: black; font-size: 11px; font-family: Verdana, Arial, Helvetica, Geneva, Swiss, SunSans-Regular }
.txtform { color: black; font-size: 12px; font-family: Verdana, Arial, Helvetica, Geneva, Swiss, SunSans-Regular }
--></style>
    
</head>
<body>
    
<? if($ok_mail=="true"){ ?>
	<table width='100%' border='0' cellspacing='1' cellpadding='1'>
		<tr><td><span class='txtform'>Le message ci-dessous nous a bien été transmis, et nous vous en remercions.</span></td></tr>
		<tr><td>&nbsp;</td></tr>
		<tr><td><tt><?echo nl2br(stripslashes($corps));?></tt></td></tr>
		<tr><td>&nbsp;</td></tr>
		<tr><td><span class='txtform'>Nous allons y donner suite dans les meilleurs délais.<br>A bientôt.</span></td></tr>
	</table>
<? }else{ ?>
<form action='<? echo $PHP_SELF ?>' method='post' name='Form'>
<table width='100%' border='0' cellspacing='1' cellpadding='1'>
<? if($erreur){ ?><tr><td colspan='2' bgcolor='red'><span class='txterror'><font color='white'><b>&nbsp;ERREUR, votre message n'a pas été transmis</b></font></span></td></tr><tr><td colspan='2'><ul><?echo$erreur?></ul></td></tr><?}?>
<tr><td colspan='2'><span class='txterror'>Les champs marqué d'un * sont obligatoires</span></td></tr>
<tr><td align='right' width='30%'><span class='txtform'>Nom* :</span></td><td><input type='text' style='width:200 <?if($errf_1==1){print("; background-color: ".$color_form_warn."; color: ".$color_font_warn);}?>;' name='f_1' value='<?echo stripslashes($f_1);?>' size='24' border='0'></td></tr>
<tr><td align='right' width='30%'><span class='txtform'>Prénom* :</span></td><td><input type='text' style='width:200 <?if($errf_2==1){print("; background-color: ".$color_form_warn."; color: ".$color_font_warn);}?>;' name='f_2' value='<?echo stripslashes($f_2);?>' size='24' border='0'></td></tr>
<tr><td align='right' width='30%'><span class='txtform'>Date de Naissance* :</span></td><td><input type='text' style='width:200 <?if($errf_3==1){print("; background-color: ".$color_form_warn."; color: ".$color_font_warn);}?>;' name='f_3' value='<?echo stripslashes($f_3);?>' size='24' border='0'></td></tr>
<tr><td align='right' width='30%'><span class='txtform'>Email* :</span></td><td><input type='text' style='width:200 <?if($errf_4==1){print("; background-color: ".$color_form_warn."; color: ".$color_font_warn);}?>;' name='f_4' value='<?echo stripslashes($f_4);?>' size='24' border='0'></td></tr>
<tr><td align='right' width='30%'><span class='txtform'>Téléphone* :</span></td><td><input type='text' style='width:200 <?if($errf_5==1){print("; background-color: ".$color_form_warn."; color: ".$color_font_warn);}?>;' name='f_5' value='<?echo stripslashes($f_5);?>' size='24' border='0'></td></tr>
<tr><td align='right' width='30%'><span class='txtform'>Taille* :</span></td><td><input type='text' style='width:200 <?if($errf_6==1){print("; background-color: ".$color_form_warn."; color: ".$color_font_warn);}?>;' name='f_6' value='<?echo stripslashes($f_6);?>' size='24' border='0'></td></tr>
<tr><td align='right' width='30%'><span class='txtform'>Poids* :</span></td><td><input type='text' style='width:200 <?if($errf_7==1){print("; background-color: ".$color_form_warn."; color: ".$color_font_warn);}?>;' name='f_7' value='<?echo stripslashes($f_7);?>' size='24' border='0'></td></tr>
<tr><td align='right' width='30%'><span class='txtform'>Quelles sont à votre avis les causes de votre prise de poids ?* :</span></td><td>
<table border='0' cellspacing='0' cellpadding='0'>
<? for($id=0;$id<count($list['f_8']);$id++){
if($id==$f_8){$ct="checked";}
print("<tr><td><input ".$ct." type='radio' name='f_8' value=".$id." border='0'></td><td><span class='txtform'>".$list[f_8][$id]."</span></td></tr>");
unset($ct);
}?>
</table>
</td></tr>
<tr><td align='right' width='30%'><span class='txtform'>Où sont situées vos rondeurs ?* :</span></td><td>
<table border='0' cellspacing='0' cellpadding='0'>
<? for($id=0;$id<count($list['f_9']);$id++){
if($f_9[$id]==1){$ct="checked";}
print("<tr><td><input ".$ct." type='checkbox' name='f_9[$id]' value='1' border='0'></td><td><span class='txtform'>".$list[f_9][$id]."</span></td></tr>");
unset($ct);
}?>
</table>
</td></tr>
<tr><td align='right' width='30%'></td><td><input type='submit' name='submit' value='Envoyer' border='0'></td></tr>
</table>
</form>
<? } ?>
    
</body>
</html>
Lorsque l'on rempli correctement le formulaire, il y a :
ERREUR, votre message n'a pas été transmis
Le champ « Où sont situées vos rondeurs ? » requiert au moins une sélection.


Or, ce champ est rempli.