Formulaire de contact

erge
Invité n'ayant pas de compte PHPfrance

11 oct. 2006, 14:42

Bonjour,

J'ai mis un formulaire de contact dans mon site. Il fonctionne car je reçois bien les informations envoyées.
1. J'aurais voulu que lors de l'envoi du formulaire par le visiteur un message confirme que tout c'est bien déroulé. J'y suis parvenue mais ce message ne s'affiche pas à l'endroit que je voudrais sur ma page.
2. J'aurais voulu aussi si ça n'est pas trop demandé indiquer que tous les champs doivent être rempli.
Voici le code php du formlaire (il y a de l'espagnol mais c'est normal).
<?php 
$nom=$_POST['nom']; 
$email=$_POST['mail']; 
$rue=$_POST['rue']; 
$message=$_POST['message']; 
 
//voici la version Mine 
$headers = "MIME-Version: 1.0\r\n"; 
 
//ici on détermine le mail en format text 
$headers .= "Content-type: text/plain; charset=iso-8859-1\r\n"; 
 
//ici on détermine l'expediteur et l'adresse de réponse 
$headers .= "From: $nom <$mail>\r\nReply-to : $nom <$mail>\nX-Mailer:PHP"; 

$objet="Pedida a partir del sitio"; 
$destinataire="[email protected]"; 
$body .="$nom :\n"; 
$body .="$email :\n"; 
$body .="$rue :\n"; 
$body .="$message :\n"; 
if (mail($destinataire,$objet,stripslashes($body),$headers,"-f $email")) { 
echo "<div class='story'>El mensaje siguiente se nos transmitió bien, y les agradecemos. Le contestaremos lo más rápido posible. Hasta pronto"; 
} else { 
echo "<div class='story'>ERROR, ERROR, el mensaje no has ido transmitido"; 
} 
?>
Merci de m'aider :)

Avatar du membre
ViPHP
ViPHP | 3008 Messages

11 oct. 2006, 14:49

Pour ta première question, tout dépend de ton code et où tu veux le placer.

Pour la second, utilises ISSET et EMPTY pour tester si le champ existe et non vide pour l'envoi.

Par exemple :
if( isset($_POST['nom']) && !empty($_POST['nom']) && isset($_POST['mail']) && !empty($_POST['mail']) && isset($_POST['rue']) && !empty($_POST['rue']) && isset($_POST['message']) && !empty($_POST['message']) )
{
	//envoi du mail
}
else
{
	//erreur
}

erge
Invité n'ayant pas de compte PHPfrance

11 oct. 2006, 22:09

Merci Charabia,

J'étais justement en train de chercher des infos sur la fonction isset.
Est-ce que je peux mettre tout le code php entre <Body> et </body> de ma page? N'y a t-il pas une forme raccourcie pour
<?php if( isset($_POST['nom']) && !empty($_POST['nom']) && isset($_POST['mail']) && !empty($_POST['mail']) && isset($_POST['rue']) && !empty($_POST['rue']) && isset($_POST['message']) && !empty($_POST['message']) )
simplement pour dire que tous les champs doivent être rempli, car si j'ai un formulaire très long on peut imaginer aussi la longueur du script.

Merci et @+ :)