Problème de formulaire (grand débutant)
Posté : 23 mai 2008, 23:12
Bonjour à tous !
Voilà j'ai plus ou moins l'habitude du html et du css, mais je n'y connais pas grand chose en php. J'ai cependant eu besoin d'y avoir recours pour créer un formulaire, et j'ai donc recherché un code mis à disposition sur le net. J'ai utilisé easyPHP pour tester ma page en local, mais ça ne marche pas, et je ne trouve pas mon erreur.
Est-ce que vous pourriez m'aider ?
Code dans la page en html :
Code du fichier nadform.php :
Voilà j'ai plus ou moins l'habitude du html et du css, mais je n'y connais pas grand chose en php. J'ai cependant eu besoin d'y avoir recours pour créer un formulaire, et j'ai donc recherché un code mis à disposition sur le net. J'ai utilisé easyPHP pour tester ma page en local, mais ça ne marche pas, et je ne trouve pas mon erreur.
Est-ce que vous pourriez m'aider ?
Code dans la page en html :
Code : Tout sélectionner
<!--DEBUT CODE FORMULAIRE-->
<!-- Ce script a ete developpe par Nadine Gaine.
Modifications et ajouts par Daniel Maleville
Vous pouvez l'utiliser gratuitement a des fins NON-COMMERCIALES seulement, et le modifier a votre convenance.
Trouve sur http://www.toulouse-renaissance.net/c_outils/ -->
<form method="post" action="nadform.php" name="AVIS">
<table width="600">
<tr>
<td width="35"></td>
<td width="565"><br>
<h2>Name of the console in a):<br>
<input type="text" name="champ1" size="20"></h2><br>
<h2>Name of the console in b):<br>
<input type="text" name="champ2" size="20"></h2><br>
<h2>Name of the console in c):<br>
<input type="text" name="champ3" size="20"></h2><br>
<h2>What is the feeling created about console a)?</h2>
<p><input type="radio" value="Reality" name="champ4">
It is better than reality.<br>
<input type="radio" value="Fun" name="champ4">
You can have fun with your friends.<br>
<input type="radio" value="Different" name="champ4">
There are lots of different beautiful games.
</p><br>
<h2>What is the feeling created about console b)?</h2>
<p><input type="radio" value="Reality" name="champ5">
It is better than reality.<br>
<input type="radio" value="Fun" name="champ5">
You can have fun with your friends.<br>
<input type="radio" value="Different" name="champ5">
There are lots of different beautiful games.
</p><br>
<h2>What is the feeling created about console c)?</h2>
<p><input type="radio" value="Reality" name="champ6">
It is better than reality.<br>
<input type="radio" value="Fun" name="champ6">
You can have fun with your friends.<br>
<input type="radio" value="Different" name="champ6">
There are lots of different beautiful games.
</p><br>
<h2>Which of these consoles is your favourite?<br>
<select name="champ7" size="1">
<option selected value="0">- Choisir - </option>
<option value="Reponse5_1">a)</option>
<option value="Reponse5_2">b)</option>
<option value="Reponse5_3">c)</option>
</select></h2><br>
<h2>Explain why this console is your favourite in one or two sentences:<br>
<textarea rows="4" name="champ8" cols="40"></textarea></h2><br>
<h2>Don't forget to write your full name here:<br>
<input type="text" name="champ9" size="20"></h2><br><br>
<p><input type="submit" value="Send" name="send"><br></p>
</td>
</tr>
</table>
</form>
<!--FIN CODE FORMULAIRE-->Code du fichier nadform.php :
<!-- DEBUT DU SCRIPT nadform.php-->
<html>
<head>
</head>
<body>
<?
/* Ce script a été développé par Nadine Gaine.
Modifications et ajouts par Daniel Maleville
Vous pouvez l'utiliser gratuitement à des fins NON-COMMERCIALES seulement, et le modifier à votre convenance.
Trouvé sur http://www.toulouse-renaissance.net/c_outils/
*/
//
// DEBUT Fonction de contrôle du mail PHP-UNIX
function check_mail($champ4) {
if( (preg_match('/(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)/', $champ4)) ||
(preg_match('/^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,3}|[0-9]{1,3})(\]?)$/',$champ4)) ) {
$host = explode('@', $champ4);
if(checkdnsrr($host[1].'.', 'MX') ) return true;
if(checkdnsrr($host[1].'.', 'A') ) return true;
if(checkdnsrr($host[1].'.', 'CNAME') ) return true;
}
return false;
}
// FIN Fonction de contrôle du mail
$MailTo = "[email protected]"; //adresse à laquelle sera envoyé le contenu du formulaire
$MailCc = ""; // adresse à laquelle sera envoyé un communiqué
$MailSubject = "Video games form"; //texte qui va figurer dans le champ "sujet" du email
$MailHeader = "From: [email protected]"; //adresse email qui va figurer dans le champ "expéditeur" du email et qui peut être remplacé par la variable "$champx" ("$champ3").
// Quelques hébergeurs obligent que le domaine du mail de l'expéditeur soit celui de votre site
$min_size="3"; // Longueur minimum du message
$max_size="5000"; //Longueur maximum du message
/* Les routines suivantes permettent à chacune des variables de prendre la valeur des champs du formulaire et de les stocker ensuite dans la variable globale MailBody qui constituera le corps du message */
$Envoi = 1; //initialisation de la variable envoi à 1
/* Pour enlever une condition de vérification de champ (vide ou non), enlever, par exemple au champ 1 :
*
if ($champ1 == ""){ //nom du champ1
echo("Vous n'avez pas complété le champ 1.<br />"); //message qui s'affiche si le visiteur n'a pas rempli ce champ
$Envoi = 0; //si le champ1 n'a pas été rempli, la variable envoi prend la valeur de 0
}
else {
}
et ne laisser que :
$MailBody .= "Question 1 : $champ1\n";
*/
//
if ($champ1 == ""){ //nom du champ1
echo("You haven't named console a)."); //message qui s'affiche si le visiteur n'a pas rempli ce champ
$Envoi = 0; //si le champ1 n'a pas été rempli, la variable envoi prend la valeur de 0
}
else {
$MailBody .= "Question 1 : $champ1\n"; //si le champ1 contient de l'information, elle est stockée dans la variable MailBody
}
if ($champ2 == ""){
echo("You haven't named console b).");
$Envoi = 0;
}
else {
$MailBody .= "Question 2 : $champ2\n";
}
if ($champ3 == ""){
echo("You haven't named console c).");
$Envoi = 0;
}
else {
$MailBody .= "Question 3 : $champ3\n";
}
if ($champ4 == ""){
echo("You haven't chosen the feeling created in a).");
$Envoi = 0;
}
else {
$MailBody .= "Question 4 : $champ4\n";
}
if ($champ5 == ""){
echo("You haven't chosen the feeling created in b).");
$Envoi = 0;
}
else {
$MailBody .= "Question 5 : $champ5\n";
}
if ($champ6 == ""){
echo("You haven't chosen the feeling created in c).");
$Envoi = 0;
}
else {
$MailBody .= "Question 6 : $champ6\n";
}
if ($champ7 == "0"){
echo("You haven't chosen your favourite console.");
$Envoi = 0;
}
else {
$MailBody .= "Question 7 : $champ7\n";
}
if ($champ8 == ""){
echo("You haven't explained why it's your favourite console.");
$Envoi = 0;
}
elseif (strlen($champ8) <= $min_size) {
echo("Your answer is too short.");
$Envoi = 0;
}
elseif (strlen($champ8) >= $max_size) {
echo("Your answer is too long.");
$Envoi = 0;
}
else {
$affich_champ8 = htmlentities($champ8); // affiche le code HTML à l'état brut.
$affich_champ8 = StripSlashes($affich_champ8); // enlève, au texte affiché, les \ aux apostrophes, exemple : l\'habitude
$envoi_champ8 = StripSlashes($champ8); // enlève les \ aux apostrophes, exemple : l\'habitude
$MailBody .= "Votre texte : $envoi_champ8\n";
}
if ($champ9 == ""){ //nom du champ9
echo("You haven't written your name."); //message qui s'affiche si le visiteur n'a pas rempli ce champ
$Envoi = 0; //si le champ9 n'a pas été rempli, la variable envoi prend la valeur de 0
}
else {
$MailBody .= "Question 9 : $champ9\n"; //si le champ1 contient de l'information, elle est stockée dans la variable MailBody
}
//Envoi du message
if ($Envoi == 1) { //vérification que la variable envoi est bien à 1
echo("<p><strong>Name : <font color=\"#0000FF\">$champ9</font>\n");
echo("<p> </p>");
mail($MailTo, $MailSubject, $MailBody, $MailHeader); //envoi du message
//mail($MailCc, $MailSubject, $MailBody, $MailHeader); //envoi du communiqué (enlever // pour le rendre opérationnel
echo("<p>Your answers have been sent.<br />Thank you for filling this form.");
echo("<p> </p><p> </p><p align=\"center\"><a href=\"videogames.htm\">Go back</strong></a></p>"); //affichage d'un message de confirmation.
}
?>
</body>
</html>
<!-- FIN DU SCRIPT nadform.php-->
Merci d'avance pour votre aide !