Probleme avec formulaire de contact

matdollars -  
 matdollars -
Bonjour,

Voila mon probleme. Quand j oublie de remplir un champ (c est pour tester) je n ai rien qui s affiche au lieu des phrases d erreurs.

voila mon code:

<?php
if($_POST){
//Récupération des données du formulaire----------------------------
$nom = $_POST["nom"];
$email = $_POST["email"];
$tel = $_POST["tel"];
$message = $_POST["commentaire"];
$societe = $_POST["societe"];
//------------------------------------------------------------------

//Gestion des erreurs de saisie-------------------------------------
$erreurs = array();
if( empty($nom)) $erreurs = "il manque votre nom";
if( empty($societe)) $erreurs = "il manque le nom de votre société";
if( empty($email)) $erreurs = "il manque votre email";
if( empty($tel)) $erreurs = "il manque votre téléphone";
if( empty($commentaire)) $erreurs = "il manque votre message";
//------------------------------------------------------------------

if(empty($erreurs)) {
$from = $email;
$reply = $from;
$to = "toto@toto.com"; //Mettez l'email de destination ici
$objet="message envoyé depuis le formulaire";
//Mise en forme du contenu au format HTML-----------------------
$contenu = "Nom: ".$nom;
$contenu .= "<br /> Société: ".$societe;
$contenu .= "<br /> Tel: ".$tel;
$contenu .= "<br /> Message: <br />";
$contenu .= $commentaire;

//--------------------------------------------------------------

//Entêtes de formatage de l'email en mode HTML------------------
$headers = 'MIME-Version: 1.0' . "\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\n";
$headers .= 'From: '.$from."\n";
$reply = $headers."Reply-to: ".$reply."\n";
//---------------------------------------------------------------

//Déclenchement de l'email et reroutage vers une autre page-----
$resultat = mail($to, $objet, $contenu, $reply);

if($resultat) {
echo "email envoyé";
} else {
echo "Echec dans l'envoi de l'email";
}

} else {
$texte_erreur = implode("<br />",$erreurs);
print $texte_erreur;
}

}

?>

3 réponses

olivier
 
A la volée je regarde. Une question : lorsque tu rempli un champ seulement, cela t'affiche t'il le message ?
0
olivier
 
Atention à $erreur, définit comme tableau. A chaque fois que tu fais $erreur ="dfgdfg"; il remplace le contenu du tableau par sa dernière valeur. Faire array_push($erreurs,"nouvelle valeur") ou se reporter à la documentation des array de php
0
matdollars
 
Voila mon erreur:

il n y avais pas les [] avant le signe =.

Voila la solution:

$erreurs = array();
if( empty($nom)) $erreurs[] = "il manque votre nom";
if( empty($societe)) $erreurs[] = "il manque le nom de votre société";
if( empty($email)) $erreurs[] = "il manque votre email";
if( empty($tel)) $erreurs[] = "il manque votre téléphone";
if( empty($commentaire)) $erreurs[] = "il manque votre message";

Je débute en php donc Olive peux tu préciser ce que tu voulez dire dans ton post ?

Merci.
0