Problème avec le formulaire de contact en php...

Toutes les questions et les aides qui concernent le langage PHP
MorphoZ
Tutomaker Junior
Tutomaker Junior
 
Messages: 40
Enregistré le: Lun Nov 26, 2007 9:58 pm

Problème avec le formulaire de contact en php...

Messagepar MorphoZ le Sam Jan 19, 2008 6:49 pm

Salut a tous, je rencontre un problème avec ce code là.

Le mail ne veut pas s'envoyer, je ne sais pas quoi faire...

Code: Tout sélectionner
<?php
// Dans la ligne qui suit, remplacer webmaster@domaine.tld par l'adresse email du webmaster, à laquelle les messages devront être envoyés
$email_webmaster "webmaster@domaine.tld";
// === traitement des données du formulaire ============================================================
if (isset($_POST["envoyer"])){
// le formulaire a été soumis
        
$etat "erreur";
// Valeur par défaut. Prendra la valeur "ok" s'il n'y a pas d'erreur
// --- mise en forme des champs saisis dans le formulaire lors de sa soumission ---
        
if (isset($_POST["email_expediteur"])) {
                 
$_POST["email_expediteur"]=trim(stripslashes($_POST["email_expediteur"]));
        }
        if (isset(
$_POST["titre"])) {
                 
$_POST["titre"]=trim(stripslashes($_POST["titre"]));
        }
        if (isset(
$_POST["message"])) {
                 
$_POST["message"]=trim(stripslashes($_POST["message"]));
        }
        
// --- test de la validité des champs saisis ---
        
if (empty($_POST["email_expediteur"])) {
// il manque l'email de l'expéditeur
                 
$erreur="Saisissez votre adresse email...";
        }
        elseif (!
eregi("^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\.[a-z]{2,4}$",$_POST["email_expediteur"])){
// l'adresse e-mail n'est pas valide
                 
$erreur="Votre adresse e-mail n'est pas valide...";
        }
        elseif (empty(
$_POST["message"])) {
// le message est vide
                 
$erreur="Saisissez un message...";
        }
        else {
// --- tous les champs sont correctement remplis: on pourra envoyer le mail ---
                 
$etat="ok";
        }
}
else {
// --- le formulaire n'a pas été soumis ---
           
$etat="attente";
}
// === fin de traitement des données du formulaire =======================================================
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xml:lang="fr" lang="fr" xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Formulaire de contact</title>
</head>
<body>
<h1>Contacter le webmaster</h1>
<?php
if ($etat!="ok"){// le formulaire n'a pas été soumis, ou soumis avec une erreur
         
if ($etat=="erreur"){
//le formulaire a été soumis avec une erreur
                         
echo "<p><strong>".$erreur."</strong></p>\n";
// afficher le message d'erreur
         
}
?>
        <form method="post" action="<?php echo $_SERVER["PHP_SELF"]; ?>">
        <p><label for="email_expediteur">Votre adresse e-mail (obligatoire):</label><br />
        <input type="text" size="40" name="email_expediteur" id="email_expediteur" value="<?php
        
if (!empty($_POST["email_expediteur"])) {
// l'adresse email de l'expéditeur a été saisie: la réafficher
                
echo htmlspecialchars($_POST["email_expediteur"],ENT_QUOTES);
        }
        
?>" />
        </p>
        <p><label for="titre">Titre de message (facultatif):</label><br />
        <input type="text" size="40" name="titre" id="titre" value="<?php
        
if (!empty($_POST["titre"])) {
// le titre du message a été saisi: le réafficher
                
echo htmlspecialchars($_POST["titre"],ENT_QUOTES);
        }
        
?>" />
        </p>
        <p><label for="message">Message (obligatoire):</label><br />
        <textarea name="message" id="message" cols="40" rows="5"><?php
        
if (isset($_POST["message"])) {
// le message a été saisi: le réafficher
                
echo htmlspecialchars($_POST["message"],ENT_QUOTES);
        }
        
?></textarea>
        </p>
        <p><input type="submit" name="envoyer" value="Envoyer" />
        </p>
        </form>
<?php
}
else {
// le formulaire a été soumis sans erreur, on envoie le mail
        
$entete "From: ".$_POST["email_expediteur"]." <".$_POST["email_expediteur"].">\n";
        
$entete .= "MIME-Version: 1.0";
        if (@
mail($email_webmaster,$_POST["titre"],$_POST["message"],$entete)){
// mail envoyé
                
echo "Votre message a été envoyé.<br />\n";
                echo 
"<a href=\"".$_SERVER["PHP_SELF"]."\">Envoyer un autre message...</a>\n";
        }
        else {
// erreur lors de l'envoi du mail
                
echo "Un problème s'est produit lors de l'envoi du message.\n";
                echo 
"<a href=\"".$_SERVER["PHP_SELF"]."\">Réessayez...</a>\n";
        }
}
?>
</body>
</html>


le code m'a l'air bon, mais le mail ne veut pas partir >_<
What You See Is What You Get

Avatar de l’utilisateur
Yoyo
Gérant
Gérant
 
Messages: 2031
Enregistré le: Mer Sep 27, 2006 4:54 pm

Messagepar Yoyo le Sam Jan 19, 2008 9:30 pm

Bizarre cette fonction @mail(). Moi j'ai utilisé mail() tout court il me semble !
Vive les tutomakers ;)



Retourner vers Langage PHP

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 0 invités