Formulaire en ligne

  • Auteur de la discussion pat031
  • Date de début

pat031

Nouveau membre
Bonjour,

J'ai réalisé un formulaire php en ligne sur http://www.ge-net.ch, utilitaire sympa pour ceux qui ne connaissent pas le php comme moi et qui veulent en faire quand même.
Le script fonctionne mal (erreur à la ligne 104, 115, 117, 118, 119, 120, 121, 136), je suppose que l'envoi de mail ne fonctionne pas non plus.
Pouvez-vous m'aider à faire fonctionner ce sript SVP?
Patrick

Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
   "http://www.w3.org/TR/html4/strict.dtd">
<?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_6']=array("Sélectionnez","a","b","c","d","e","f");
$list['f_7']=array("Sélectionnez","1","2","3","4","5","6");
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=strip_tags(trim($f_3));
	$f_4=trim(ucwords(eregi_replace("[^a-zA-Z0-9éèàäö\ -]", "", $f_4)));
	$f_5=trim(eregi_replace("[^0-9\ +]", "", $f_5));
	// 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; Votre email : &raquo; est vide ou incomplet.</span>";
		$errf_3=1;
	}else{
		if(!ereg('^[-!#$%&\'*+\./0-9=?A-Z^_`a-z{|}~]+'.
		'@'.
		'[-!#$%&\'*+\/0-9=?A-Z^_`a-z{|}~]+\.'.
		'[-!#$%&\'*+\./0-9=?A-Z^_`a-z{|}~]+$',
		$f_3)){
			$erreur.="<li><span class='txterror'>La syntaxe de votre adresse e-mail n'est pas correcte.</span>";
			$errf_3=1;
		}
	}
	if(strlen($f_4)<2){
		$erreur.="<li><span class='txterror'>Le champ &laquo; Adresse : &raquo; est vide ou incomplet.</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($f_6==0){
		$erreur.="<li><span class='txterror'>Le champ &laquo; Type de support : &raquo; n'a pas été défini.</span>";
		$errf_6=1;
	}
	if($f_7==0){
		$erreur.="<li><span class='txterror'>Le champ &laquo; Quantité : &raquo; n'a pas été défini.</span>";
		$errf_7=1;
	}
	if(strlen($f_8)<2){
		$erreur.="<li><span class='txterror'>Le champ &laquo; Commentaires : &raquo; est vide ou incomplet.</span>";
		$errf_8=1;
	}
	if($erreur==""){
		// Création du message
		$titre="Message de votre site";
		$tete="From:test@test.com\n";
		$corps.="Nom : : ".$f_1."\n";
		$corps.="Prénom : : ".$f_2."\n";
		$corps.="Votre email : : ".$f_3."\n";
		$corps.="Adresse : : ".$f_4."\n";
		$corps.="Téléphone : : ".$f_5."\n";
		$corps.="Type de support : : ".$list['f_6'][$f_6]."\n";
		$corps.="Quantité : : ".$list['f_7'][$f_7]."\n";
		$corps.="Commentaires : : ".$f_8."\n";
		if(mail("aaa@gmail.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 lang="fr">
   <head>
      <title>Formulaire</title>
<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'>Votre email : *</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'>Adresse : *</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'>Type de support : *</span></td><td><select style='width:200 <?if($errf_6==1){print("; background-color: ".$color_form_warn."; color: ".$color_font_warn);}?>;' name='f_6' size='1'>
<? for($id=0;$id<count($list['f_6']);$id++){
if($id==$f_6){$ct="selected";}
print("<option ".$ct." value=".$id.">".$list['f_6'][$id]."</option>");
unset($ct);
}?>
</select></td></tr>
<tr><td align='right' width='30%'><span class='txtform'>Quantité : *</span></td><td><select style='width:200 <?if($errf_7==1){print("; background-color: ".$color_form_warn."; color: ".$color_font_warn);}?>;' name='f_7' size='1'>
<? for($id=0;$id<count($list['f_7']);$id++){
if($id==$f_7){$ct="selected";}
print("<option ".$ct." value=".$id.">".$list['f_7'][$id]."</option>");
unset($ct);
}?>
</select></td></tr>
<tr><td align='right' width='30%'><span class='txtform'>Commentaires : *</span></td><td><textarea style='width:360 <?if($errf_8==1){print("; background-color: ".$color_form_warn."; color: ".$color_font_warn);}?>;' name='f_8' rows='6' cols='40'><?echo$f_8?></textarea></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>
 

zeb

Modérateur
:fou:

Le topic qui s'appelle "A lire avant de poster" est à lire avant de poster !!!!!!!!
 

pat031

Nouveau membre
Merci de cette remarque, mais comme je l'ai précisé lors de mon post j'ai pris un générateur de formulaire pour créer le code et je ne veux pas me lancer dans la programmation php, je souhaite seulement que ce script fonctionne et que ce post puissent servir à d'autre personnes (debutante!) qui souhaitent créer un formulaire en ligne.
 

zeb

Modérateur
[strike]J'abandonne :pfff:[/strike]
Pas vexé, juste surmené par ailleurs ;)

C'est t'y pas beau comme ça ? :love:
 

pat031

Nouveau membre
Le but de ma démarche n'était pas de te vexer. Merci Zeb d'avoir pris la peine de me répondre.
 

KangOl

Grand Maître
vas lire les règles. merci...

et élague ton code, tout n'est pas utile :o
 

marsien

Grand Maître
pat, tu trouves que ton code est lisible comme ça ? Moi non ! Et du coup, si je ne peux pas le lire, je ne peux pas voir où sont les problèmes.

Tu utilises la petite icone (deuxième en partant de la gauche) au dessus de ton premier message qui te permettra d'éditer ton message. Dans la nouvelle page qui apparaît, tu sélectionnes ton code et tu cliques sur l'icône
Vous devez être connecté pour voir les images.
au dessus de la zone de texte. Tu valides et tu verras, c'est magique, ton code devient lisible !

:)


Mais fait un effort de répondre aux attentes de Zenb, notamment en lisant le message d'aide "A lire avant de poster". Tu aurais tout compris avant de le vexer :D
 

pat031

Nouveau membre
Vraiment désolé Zeb (et aux autres aussi), mais quand je me suis inscris, je suis arrivé directement sur l'onglet "PHP & MySQL & ASP" et donc je n'ai pas vu le post "A lire avant de poster". Voila qui est fait.
Je corrige de suite mon post!!!! :D
 

marsien

Grand Maître
Wouah, c'est beau maintenant ! :D

Mais le code, par contre... Le générateur auto, il est pas avare en ligne ! Ca va être chaud de tout lire. Je vais quand même essayer de voir ce qui cloche :)
 

marsien

Grand Maître
Bon, le code php utilisé est assez vieux, et fait fi des déclaration de variables et/ou du contrôle de leur existence. Ca marchait avant, mais maintenant non !

Pour faire simple, j'ai seulement déclaré chaque variable au départ en leur mettant une valeur vide.

Maintenant ça devrait marcher (tu as du recevoir des mails de ma part, en test !

Le code
[cpp]<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<?php
$ok_mail = "";
$erreur = "";
$errf_1 = "";
$f_1 = "";
$errf_2 = "";
$f_2 = "";
$errf_3 = "";
$f_3 = "";
$errf_4 = "";
$f_4 = "";
$errf_5 = "";
$f_5 = "";
$errf_6 = "";
$f_6 = "";
$ct = "";
$f_7 = "";
$errf_7 = "";
$f_8 = "";
$errf_8 = "";
// 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_6']=array("Sélectionnez","a","b","c","d","e","f");
$list['f_7']=array("Sélectionnez","1","2","3","4","5","6");
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=strip_tags(trim($f_3));
$f_4=trim(ucwords(eregi_replace("[^a-zA-Z0-9éèàäö\ -]", "", $f_4)));
$f_5=trim(eregi_replace("[^0-9\ +]", "", $f_5));
// 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; Votre email : &raquo; est vide ou incomplet.</span>";
$errf_3=1;
}else{
if(!ereg('^[-!#$%&\'*+\./0-9=?A-Z^_`a-z{|}~]+'.
'@'.
'[-!#$%&\'*+\/0-9=?A-Z^_`a-z{|}~]+\.'.
'[-!#$%&\'*+\./0-9=?A-Z^_`a-z{|}~]+$',
$f_3)){
$erreur.="<li><span class='txterror'>La syntaxe de votre adresse e-mail n'est pas correcte.</span>";
$errf_3=1;
}
}
if(strlen($f_4)<2){
$erreur.="<li><span class='txterror'>Le champ &laquo; Adresse : &raquo; est vide ou incomplet.</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($f_6==0){
$erreur.="<li><span class='txterror'>Le champ &laquo; Type de support : &raquo; n'a pas été défini.</span>";
$errf_6=1;
}
if($f_7==0){
$erreur.="<li><span class='txterror'>Le champ &laquo; Quantité : &raquo; n'a pas été défini.</span>";
$errf_7=1;
}
if(strlen($f_8)<2){
$erreur.="<li><span class='txterror'>Le champ &laquo; Commentaires : &raquo; est vide ou incomplet.</span>";
$errf_8=1;
}
if($erreur==""){
// Création du message
$titre="Message de votre site";
$tete="From:test@test.com\n";
$corps = "";
$corps.="Nom : : ".$f_1."\n";
$corps.="Prénom : : ".$f_2."\n";
$corps.="Votre email : : ".$f_3."\n";
$corps.="Adresse : : ".$f_4."\n";
$corps.="Téléphone : : ".$f_5."\n";
$corps.="Type de support : : ".$list['f_6'][$f_6]."\n";
$corps.="Quantité : : ".$list['f_7'][$f_7]."\n";
$corps.="Commentaires : : ".$f_8."\n";
if(mail("aaa@gmail.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 lang="fr">
<head>
<title>Formulaire</title>
<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>
<?php 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><?php 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>
<?php }else{ ?>
<form action='<?php echo $_SERVER['PHP_SELF']; ?>' method='post' name='Form'>
<table width='100%' border='0' cellspacing='1' cellpadding='1'>
<?php 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><?php echo $erreur?></ul></td></tr>
<?php } ?>
<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 <?php if($errf_1==1){print("; background-color: ".$color_form_warn."; color: ".$color_font_warn);}?>;' name='f_1' value='<?php 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 <?php if($errf_2==1){print("; background-color: ".$color_form_warn."; color: ".$color_font_warn);}?>;' name='f_2' value='<?php echo stripslashes($f_2);?>' size='24' border='0'></td></tr>
<tr><td align='right' width='30%'><span class='txtform'>Votre email : *</span></td><td><input type='text' style='width:200 <?php if($errf_3==1){print("; background-color: ".$color_form_warn."; color: ".$color_font_warn);}?>;' name='f_3' value='<?php echo stripslashes($f_3);?>' size='24' border='0'></td></tr>
<tr><td align='right' width='30%'><span class='txtform'>Adresse : *</span></td><td><input type='text' style='width:200 <?php if($errf_4==1){print("; background-color: ".$color_form_warn."; color: ".$color_font_warn);}?>;' name='f_4' value='<?php 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 <?php if($errf_5==1){print("; background-color: ".$color_form_warn."; color: ".$color_font_warn);}?>;' name='f_5' value='<?php echo stripslashes($f_5);?>' size='24' border='0'></td></tr>
<tr><td align='right' width='30%'><span class='txtform'>Type de support : *</span></td><td><select style='width:200 <?php if($errf_6==1){print("; background-color: ".$color_form_warn."; color: ".$color_font_warn);}?>;' name='f_6' size='1'>
<?php for($id=0;$id<count($list['f_6']);$id++){
if($id==$f_6){$ct="selected";}
print("<option ".$ct." value=".$id.">".$list['f_6'][$id]."</option>");
//unset($ct);
}?>
</select></td></tr>
<tr><td align='right' width='30%'><span class='txtform'>Quantité : *</span></td><td><select style='width:200 <?php if($errf_7==1){print("; background-color: ".$color_form_warn."; color: ".$color_font_warn);}?>;' name='f_7' size='1'>
<?php for($id=0;$id<count($list['f_7']);$id++){
if($id==$f_7){$ct="selected";}
print("<option ".$ct." value=".$id.">".$list['f_7'][$id]."</option>");
//unset($ct);
}?>
</select></td></tr>
<tr><td align='right' width='30%'><span class='txtform'>Commentaires : *</span></td><td><textarea style='width:360 <?php if($errf_8==1){print("; background-color: ".$color_form_warn."; color: ".$color_font_warn);}?>;' name='f_8' rows='6' cols='40'><?php echo $f_8?></textarea></td></tr>
<tr><td align='right' width='30%'></td><td><input type='submit' name='submit' value='Envoyer' border='0'></td></tr>
</table>
</form>
<?php } ?>
</body>
</html>[/cpp]
 

pat031

Nouveau membre
Wouaaww! :love: Merci Marsien d'avoir pris le temps de regarder ce vieux code illisible.
Je viens d'essayer mais lors de la validation, l'envoie de mail ne fonctionne pas (j'ai testé en local avec easyphp); .... j'essaie en ligne
 

pat031

Nouveau membre
Le script fonctionne. Merci à tous pour vos réponses Merci à présence-pc et Merci Marsienv :) :) :) :)
 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Derniers messages publiés
Statistiques globales
Discussions
730 098
Messages
6 717 098
Membres
1 586 286
Dernier membre
petitangebleu1977
Partager cette page
Haut