|
|
|
|
Bonjour,
A tous
je vais poster un message relatif à un formulaire php. oui encore un !!!;-) oups
Je sais que ca fait pester - voire pire - sourire - les habitués du php mais j'aurai besoin dun petit coup de pouce et un regard sur ce qui cloche sur mon envoi de formulaire
qui me renvoie inexorablement la même erreur - "veuillez remplir tous les champs"
ca doit etre bête et je vous prie de m'en excuser par avance mais quand on sait pas ben on sait pas - sourire
j'ai debute un site il ya 2 mois et je n'avais aucune notion HTML ou autre outils web !
merci de votre comprehension
je vous donne le code pour le formulaire html et le fichier php lié
jespere que quelqu un pourra juste jeter un petit coup d'oeil pour voir ce qui ne va pas!
Merci sincerement par avance!!
Code form HTML :
<form action="send.php""" method="post" enctype="text/plain" name="contact" id="contact"maito:supportinfo58@neuf.fr>
<table width="100%" border="0" cellpadding="0" cellspacing="5" class="texte">
<tr>
<td width="19%">Nom ou pseudo : </td>
<td width="81%"><input name="nom" type="text" id="nom"></td>
</tr>
<tr>
<td>Lieu</td>
<td><input name="lieu" type="text" id="lieu"></td>
</tr>
<tr>
<td>Votre email : </td>
<td><input name="email" type="text" id="email"></td>
</tr>
<tr>
<td>Sujet du message : </td>
<td><textarea name="message" cols="60" id="message"></textarea></td>
</tr>
<tr>
<td><img src="images/tortue.gif" width="120" height="60" align="top"></td>
<td><input name="Submit" type="submit" onClick="MM_validateForm('nom','','R','email','','RisEmail','msg','','R');return document.MM_returnValue" value="Envoyer">
-
<input type="reset" name="Submit" value="Réinitialiser"></td>
</tr>
</table>
</form>
Et le code du fichier PHP :
<?php
/*
*/
$nom = $_POST['nom'];
$lieu = $_POST['lieu'];
$email = $_POST['email'];
$message = $_POST['message'];
if ($_COOKIE['sent']) $already = true;
elseif(($nom!=NULL)&&($prenom!=NULL)&&($msg!=NULL))
{
$to = "supportinfo58@neuf.fr";
//The sent message's subject
//Sujet du message envoyé
$subject = "Contact - Support Info";
$message = "Nom : $nom
Lieu : $lieu
Email : $email
Message : $message";
$ok = mail ($to,$subject,$message);
if ($ok)
{
$sent = true;
$expire = time() + 3600;
setcookie('sent',1,$expire);
}
else
{
$error = true;
}
}
else
$fill = true;
?><html>
<head>
<title>
Nous contacter
</title>
</head>
<body>
<link href="file:///C|/Documents%20and%20Settings/Utilisateur/Bureau/style.css" rel="stylesheet" type="text/css">
<center>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<table width="400" border="1" cellpadding="0" cellspacing="0" bordercolor="#FF9933" style="border-collapse:collapse;">
<tr>
<td height="62" class="texte"><center>
<?php
if ($already) echo "Vous avez déja envoyé le formulaire";
elseif ($sent) echo "Message envoyé";
elseif ($error) echo "Erreur lors de l'envoi";
elseif ($fill) echo "Veuillez remplir tous les champs";
?>
</center>
</td>
</tr>
</table>
</center>
</body>
</html>
Merci par avance
Amicalement
Bonne journee a toutes et tous!
Configuration: Windows XP Internet Explorer 6.0
$nom = $_POST['nom'];
|
Bonjour, j'ai essayé de corriger ton code mais je ne l'ai pas testé, ça donne ça :
<!-- PAGE 1-->
<form action="send.php" method="post" enctype="text/plain" name="contact" id="contact" onsubmit="MM_validateForm('nom','','R','email','','RisEmail','msg','','R');return document.MM_returnValue">
<table width="100%" border="0" cellpadding="0" cellspacing="5" class="texte">
<tr>
<td width="19%">Nom ou pseudo : </td>
<td width="81%"><input name="nom" type="text" id="nom"></td>
</tr>
<tr>
<td>Lieu</td>
<td><input name="lieu" type="text" id="lieu"></td>
</tr>
<tr>
<td>Votre email : </td>
<td><input name="email" type="text" id="email"></td>
</tr>
<tr>
<td>Sujet du message : </td>
<td><textarea name="message" cols="60" id="message"></textarea></td>
</tr>
<tr>
<td><img src="images/tortue.gif" width="120" height="60" align="top"></td>
<td><input name="Submit" type="submit" value="Envoyer">
<input type="reset" name="Submit" value="Réinitialiser"></td>
</tr>
</table>
</form>
<!-- PAGE 2 -->
<?php
$nom = htmlentities($_POST['nom']);
$lieu = htmlentities($_POST['lieu']);
$email = htmlentities($_POST['email']);
$message = htmlentities($_POST['message']);
if ($_COOKIE['sent']) $state = 'already';
elseif($nom != '' && $lieu != '' && $message != '') {
$to = "supportinfo58@neuf.fr";
//The sent message's subject
//Sujet du message envoyé
$subject = "Contact - Support Info";
$message = "Nom : $nom
Lieu : $lieu
Email : $email
Message : $message";
if(mail($to,$subject,$message)) {
$state = 'sent';
setcookie('sent',1,time() + 3600);
}
else $state = 'error';
}
else $state = 'fill';
?>
<html>
<head>
<title>Nous contacter</title>
<link href="file:///C|/Documents%20and%20Settings/Utilisateur/Bureau/style.css" rel="stylesheet" type="text/css">
</head>
<body>
<p><br /><br /><br /><br /><br /><br /><br /></p>
<table style="border-collapse:collapse; border: 1px solid #FF9933; width=400px;">
<tr>
<td class="texte" style="text-align: center; height:62px;"><?php
switch($state){
case 'already' : echo "Vous avez déja envoyé le formulaire";
break;
case 'sent' : echo "Message envoyé";
break;
case 'error' : echo "Erreur lors de l'envoi";
break;
case 'fill' : echo "Veuillez remplir tous les champs";
break;
}
?></td>
</tr>
</table>
</body>
</html>
mais il faut encore modifier des trucs pour la compatibilité w3c dans la page 1 surtout je pense... |
J'ai fait des tests, il faudrait regarder du coté de l'appel dans ton fichier html de la fonction envoi par email. Je t'explique: lorsque je veux afficher les valeurs des variables à la suite de l'envoi avec ta fonction définie rien ne s'affiche par contre si je laisse seulement <form action="" method="post"> g bien l'affichage lors du transfert |
Il faut enlever enctype="text/plain" dans la déclaration du formulaire, je ne l'avais pas vu toute a l'heure...
|
Re et fin avant le repas!
|
Merci encore pour votre aide - ca ne me gene pas de vous le reredire.
|
Ben là non c'est surement que ton hébergeur ne t'autorise pas a envoyer des mails...
<?php echo phpinfo(); ?> met ce fichier sur ton serveur vas dessus avec firefox et recherche mail dans la page (pour rechercher tu peux faire Ctrl+F) après je pense que tu peux voir si tu peux en envoyer ou non a la ligne ou ça écris quelquechose.mail_limit. je ne suis pas sur de ce que j'avance j'en déduis juste que si cette valeur est a 0 c'est que tu ne peux pas en envoyer. c'est dans le tabeau PHP Core |
Dommage!
|