Problème pour faire un formulaire

Fermé
kavarua Messages postés 6 Date d'inscription jeudi 8 novembre 2007 Statut Membre Dernière intervention 9 novembre 2007 - 8 nov. 2007 à 19:02
kavarua Messages postés 6 Date d'inscription jeudi 8 novembre 2007 Statut Membre Dernière intervention 9 novembre 2007 - 8 nov. 2007 à 20:27
Bonjour,
je suis nouveau sur le forum et la raison de ma présence est que je souhaiterais faire appel à vos talents pour m'aider à résoudre un probleme pour faire un formulaire sur mon site internet.

Je voudrais faire un formulaire simple avec deux seuls champs à remplir:
-un champ "nom"
-un champ réponse à une question par case à cocher (oui/non/peut être)

Voila ce que j'ai fait:

<form method="post" action="reception.php"><p align="left">Votre nom :<br /><input type="text" name="nom" size="40" /><br />Venez vous au reveillon? :<br /><input type="checkbox" name="oui" id="oui" /><label for="oui">OUI</label><br /><input type="checkbox" name="non" id="non" /> <label for="non">NON</label><br /><input type="checkbox" name="Sais pas encore" id="Sais pas encore" /> <label for="Sais pas encore">Sais pas encore</label><br /></p><input type="submit" name="Submit" value="Envoyer"></form>

sauf que j'ai une erreur qui s'affiche quand je valide: "Parse error: syntax error, unexpected $end in /mnt/111/sdb/1/d/kavarua/reception.php on line 12"

sais pas ce que c'est...!!! Un peu d'aide bienvenu...!!!

2e problème, la c'est plus par rapport à un manque de connaissance, je voudrai qu'une fois que les gens ont validé leurs formulaire, les informations soient envoyées et que celles ci s'affichent directement sur la page php sous forme de liste de type:

nom prenom / réponse à la question
nom prenom/ réponse à la question
nom prenom / réponse à la question
nom prenom/ réponse à la question

voila le code de ma page php:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>liste</title>
</head>

<body><h4>Merci <?php echo $_POST['nom']; ?></h4><?php echo '<p>Votre commentaire : ' . $_POST['texte'] . '</p>';?>
<?if(!empty($_POST['nom']) and !empty($_POST['texte'])){ // si les champs sont remplis echo '<h4>Merci ' . htmlentities($_POST['nom']) . '</h4>'; echo '<p>Votre commentaire : ' . htmlentities($_POST['texte']) . '</p>';}else{ echo '<h4>Erreur !</h4>'; echo '<p>Vous devez remplir correctement tous les champs</p>';}?>
</body>
</html>

que dois je rajouter pour faire ce que je veux faire...!!!

Merci à tous de votre aide...!!!

6 réponses

pour tes checkbox, essaie ça:

<form name="" id="" method="post" enctype="multipart/form-data" action="reception.php">
<p>
<input type="text" name="nom">nom
</p>
<p>
<input type="radio" name="presence" value="oui">oui<br>
<input type="radio" name="presence" value="non">non<br>
<input type="radio" name="presence" value="peut-être">peut-être<br>
</p>
<p>
<input type="submit" name="Submit" value="Envoyer">
</p>
</form>


En fait, la seule différence, c'est qe je mets, pour la checkbox, 'value' au lieu d' 'id'
A priori, ça devrait aller.
0
Nico_ Messages postés 1219 Date d'inscription vendredi 29 décembre 2006 Statut Membre Dernière intervention 15 mars 2016 189
8 nov. 2007 à 19:26
salut,

voici un formulaire php, je ne connaisais pas ta question, pour cela j'ai mis "reponse à une question", il te suffi de cahnger cette phrase se trouve entre les balises <body> </dody>

A CHANGER, c'est en majuscule! TON SITE et TON ADRESSE MAIL

essai ce formulaire FORMAT PHP:
Code php:
<?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_2']=array("oui","non","peut être");
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)));
	// 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(!$f_2){
		$erreur.="<li><span class='txterror'>Le champ &laquo; Réponse à une question &raquo; requiert au moins une sélection.</span>";
		$errf_2=1;
	}
	if($erreur==""){
		// Création du message
		$titre="Message de votre site";
		$tete="From:Site@TON SITE\n";
		$corps.="Nom : ".$f_1."\n";
		for($id=0; $id<count($list['f_2']); $id++){
			if($f_2[$id]==1){
				$corps.="Réponse à une question : ".$list['f_2'][$id]."\n";
			}
		}
		if(mail("TON ADRESSE MAIL", $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>";
		}
	}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<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'>Réponse à une question* :</span></td><td>
<table border='0' cellspacing='0' cellpadding='0'>
<? for($id=0;$id<count($list['f_2']);$id++){
if($f_2[$id]==1){$ct="checked";}
print("<tr><td><input ".$ct." type='checkbox' name='f_2[$id]' value='1' border='0'></td><td><span class='txtform'>".$list[f_2][$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>
0
kavarua Messages postés 6 Date d'inscription jeudi 8 novembre 2007 Statut Membre Dernière intervention 9 novembre 2007
8 nov. 2007 à 20:07
Merci de vos réponses!

Malheureusement les problèmes persistent.

Tout d'abord Enkidou, ta proposition ne change que la forme du formulaire mais ne resoud pas le méssage d'erreur.
J'ai encore "Parse error: syntax error, unexpected $end in /mnt/111/sdb/1/d/kavarua/reception.php on line 12"

Nico j'ai essayé avec ton code mais c'est pas exactement ca que je voudrais faire. Je voudrais que les réponses aux formulaires s'affichent (s'écrivent) directement sur la page php les uns sous les autres de la forme:

non/reponse
nom/reponse
non/reponse
nom/reponse

Merci
0
kavarua Messages postés 6 Date d'inscription jeudi 8 novembre 2007 Statut Membre Dernière intervention 9 novembre 2007
8 nov. 2007 à 20:14
Désolé, je viens de refaire le test en fait le premier probleme est résolu...plus de message d'erreurs...

Ton code Nico a l'air bon... je voudrais juste qu'au fur et à mesure que les gens répondent leurs réponses reste sur la page et qu'à la longue ca forme une liste.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
c'est quoi, le code de la ligne 12 de ton fichier reception.php?
0
kavarua Messages postés 6 Date d'inscription jeudi 8 novembre 2007 Statut Membre Dernière intervention 9 novembre 2007
8 nov. 2007 à 20:27
probleme ligne 12 résolu...

me reste juste à reussir à ce que les les différentes réponses des differents répondants restent affichés sur la page "résultats" du formulaire!!!

voici mon code php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>liste</title>
<style type="text/css">
<!--
body {
background-color: #FF0000;
}
-->
</style></head>

<body><?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_2']=array("oui","non","peut être");
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)));
// Verification des champs
if(strlen($f_1)<2){
$erreur.="<li><span class='txterror'>Le champ « Nom » est vide ou incomplet.</span>";
$errf_1=1;
}
if(!$f_2){
$erreur.="<li><span class='txterror'>Le champ « Réponse à une question » requiert au moins une sélection.</span>";
$errf_2=1;
}
if($erreur==""){
// Création du message
$titre="Message de votre site";
$tete="From:Site@TON SITE\n";
$corps.="Nom : ".$f_1."\n";
for($id=0; $id<count($list['f_2']); $id++){
if($f_2[$id]==1){
$corps.="vient au reveillon : ".$list['f_2'][$id]."\n";
}
}
if(mail("bieuzy1@hotmail.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>";
}
}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Qui vient au reveillon? </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'>Voici la liste des réponses </span></td>
</tr>
<tr><td> </td></tr>
<tr><td><tt><?echo nl2br(stripslashes($corps));?></tt></td></tr>
<tr><td> </td></tr>
<tr>
<td><p class="txtform">Merci à tous</p>
<p class="txtform">  </p></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> 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'>Réponse à une question* :</span></td><td>
<table border='0' cellspacing='0' cellpadding='0'>
<? for($id=0;$id<count($list['f_2']);$id++){
if($f_2[$id]==1){$ct="checked";}
print("<tr><td><input ".$ct." type='checkbox' name='f_2[$id]' value='1' border='0'></td><td><span class='txtform'>".$list[f_2][$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>

Le résultat à l'écran donne (pour le test avec comme réponse Jo/non):

Voici la liste des réponses

Nom : Jo
vient au reveillon : non


Merci à tous

et en fait je voudrais que par exemple si je faisais une deuxieme test avec comme réponse (Alex/ oui) ca fasse:

Voici la liste des réponses

Nom Réponse
Jo Non
Alex Oui
... ...
... ...


Merci à tous

Quelque chose comme ca...

Merci à ceux qui peuvent m'aider...!!!
0