Bonjour à tous, je me présente je m'appelle Morgan et je suis en 1ère année de BTS IRIS à La rochelle. Je suis actuellement en période de stage et j'ai pour mission de réaliser le site web d'une entreprise de développement durable. Je suis donc seul, aucun maitre de stage et je bloque sur un soucis de mail depuis hier donc c'est pour cette raison que je viens à votre aide :).
Je dois créer un formulaire PHP avec à la validation un envoi par mail mais quand je clique sur valider ça ne traite rien ça m'affiche ceci :
'."\r\n\r\n"; /* Envoi de l'e-mail */ if (mail($to, $sujet, $msg, $headers)) { $alert = 'Votre demande à été envoyé avec succès'; /* On créé un cookie de courte durée (ici 120 secondes) pour éviter de * renvoyer un mail en rafraichissant la page */ setcookie("sent", "1", time() + 120); /* On détruit la variable $_POST */ unset($_POST); } else { $alert = 'Erreur d\'envoi de votre demande'; } } /* Cas où le cookie est créé et que la page est rafraichie, on détruit la variable $_POST */ else { unset($_POST); } } ?>
J'ai essayé en local avec easyphp et en ligne (herbergeur : amen.fr), le résultat est le même.
Voici la partie HTML du formulaire :
[html]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
<head>
<title>Solar17 - Demande de devis</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link rel="stylesheet" media="screen" type="text/css" href="styles/devis.css" />
</head>
<body>
<!-- Balise form spécifique au formulaire -->
<form method="post" action="traitement_devis.php">
<!-- Tout ce qui est à gauche -->
<div id="GAUCHE">
<!-- Les titres de la colonne -->
<div id="coord">
<h2> Coordonnées </h2>
</div>
<!-- CLIENT -->
<div id="client">
<h4> CLIENT </h4>
</div>
<!-- Civilité -->
<div id="civilite" name="civilite"><label> Civilité : </label>
<input type="checkbox" name="civilite" id="case" /> <label for="case">MR</label>
<input type="checkbox" name="civilite" id="case" /> <label for="case">MME</label>
<input type="checkbox" name="civilite" id="case" /> <label for="case">MELLE</label>
</div>
<!-- Nom -->
<div id="nom"><label> Nom : </label>
<input type="text" name="nom"/>
</div>
<!-- Prénom -->
<div id="prenom"><label> Prénom : </label>
<input type="text" name="prenom"/>
</div>
<!-- Adresse -->
<div id="adresse"><label> Adresse : </label>
<input type="text" name="adresse" />
</div>
<!-- CP -->
<div id="cp"><label> Code Postal: </label>
<input type="text" size="5" maxlength="5" name="cp" />
</div>
<!-- Ville -->
<div id="ville"><label> Ville : </label>
<input type="text" name="ville"/>
</div>
<!-- Digicode -->
<div id="digi"><label> Digicode : </label>
<input type="text" name="digi" />
</div>
<!-- Etage -->
<div id="etage"><label> Etage : </label>
<input type="text" size="2" maxlength="2" name="etage" />
</div>
<!-- Porte -->
<div id="porte"><label> Porte : </label>
<input type="text" name="porte" />
</div>
<!-- Tel. Fixe -->
<div id="telfixe"><label> Tél. Fixe : </label>
<input type="text" size="10" maxlength="10" name="telfixe" />
</div>
<!-- Tel. Port -->
<div id="telport"><label> Tél. Portable : </label>
<input type="text" size="10" maxlength="10" name="telport" />
</div>
<!-- email -->
<div id="adressemail"><label> Email : </label>
<input type="text" name="adressemail"/>
</div>
<!-- CHANTIER -->
<div id="chantier">
<h4> CHANTIER </h4>
</div>
<!-- Adresse identique -->
<div id="adressiden" name="adressiden" ><label> Adresse identique : </label>
<input type="checkbox" name="adressiden" id="case" /> <label for="case">Oui</label>
<input type="checkbox" name="adressiden" id="case" /> <label for="case">Non</label>
</div>
<div id="aterisque">
<!-- Astérisque -->
<h5> * Adresse chantier dans les observations complémentaires. </h5>
</div>
<!-- RDV -->
<div id="rdv">
<h4> RENDEZ-VOUS </h4>
</div>
<!-- Quand ? -->
<div id="rdv_quand"><label> Quand préferez vous un rendez-vous ? </label>
<select name="rdvdate">
<option name="rdv_quand" value="choix1">En semaine</option>
<option name="rdv_quand" value="choix2">En weekend</option>
</select>
</div>
<!-- Heure? -->
<div id="rdv_heure"><label> Vers quelle heure préferez vous un rendez-vous ? </label>
<select name="rdvheure">
<option name="rdv_heure" value="choix1">15h</option>
<option name="rdv_heure" value="choix2">18h</option>
</select>
</div>
</div>
<!-- Tout ce qui est à droite -->
<div id="DROITE">
<!-- Préqualification -->
<div id="preq">
<h2> Préqualification </h2>
</div>
<!-- INTERET PRINCIPAL -->
<div id="interetprincipal">
<h4> INTERET PRINCIPAL </h4>
</div>
<!-- Ballon solaire -->
<div id="ballon" name="ballon"><label> Ballon solaire : </label>
<input type="checkbox" name="ballon" id="case" /> <label for="case">Oui</label>
<input type="checkbox" name="ballon" id="case" /> <label for="case">Non</label>
</div>
<!-- Pompe à chaleur -->
<div id="pompe" name="pompe"><label> Pompe à chaleur : </label>
<input type="checkbox" name="pompe" id="case" /> <label for="case">Oui</label>
<input type="checkbox" name="pompe" id="case" /> <label for="case">Non</label>
</div>
<!-- INTERET DU PROJET -->
<div id="interetprojet">
<h4> INTERET DU PROJET </h4>
</div>
<!-- Ecologie -->
<div id="ecol" name="ecol"><label> Ecologie : </label>
<input type="checkbox" name="ecol" id="case" /> <label for="case">Oui</label>
<input type="checkbox" name="ecol" id="case" /> <label for="case">Non</label>
</div>
<!-- Economie -->
<div id="econ" name="econ"><label> Economie : </label>
<input type="checkbox" name="econ" id="case" /> <label for="case">Oui</label>
<input type="checkbox" name="econ" id="case" /> <label for="case">Non</label>
</div>
<!-- LE FOYER -->
<div id="foyer">
<h4> LE FOYER </h4>
</div>
<!-- Case Appartement/Maison -->
<div id="hab" name="hab"><label> Votre habitation : </label>
<input type="checkbox" name="hab" id="case" /> <label for="case">Appartement</label>
<input type="checkbox" name="hab" id="case" /> <label for="case">Maison</label>
</div>
<br></br>
<!-- Proprio depuis quand ? -->
<div id="proprio"><label> Depuis quand êtes-vous propriétaire ? </label>
</div>
<!-- Textbox -->
<textarea name="proprio" rows="5" cols="45">
Rédigez ici...
</textarea>
<!-- LE PROJET -->
<div id="projet">
<h4> LE PROJET </h4>
</div>
<!-- Connaissez vous les energies...-->
<div id="ener_renouv" name="ener_renouv"><label> Connaissez vous les énergies renouvelables : </label>
<input type="checkbox" name="ener_renouv" id="case" /> <label for="case">Oui</label>
<input type="checkbox" name="ener_renouv" id="case" /> <label for="case">Non</label>
</div>
<!-- Depuis quand y songez...-->
<div id="songe"><label> Depuis combien de temps y songez-vous ? </label>
<select name="songez">
<option name="songe" value="choix1">1 mois</option>
<option name="songe" value="choix2">6 mois</option>
<option name="songe" value="choix2">1 ans</option>
<option name="songe" value="choix2">+ 1ans</option>
</select>
</div>
</div>
<!-- Tout ce qui est en bas -->
<div id="BAS">
<!-- Obeservation complémentaire -->
<div id="observ_comp">
<h3> Observations complémentaires : </h3>
</div>
<!-- Textbox -->
<textarea name="observ_comp" rows="6" cols="45">
Rédigez ici...
</textarea>
<br></br>
</div>
<!-- Cliquer sur.... -->
<div id="penseclique">
<h5> (Cliquez sur valider pour envoyer votre formulaire) </h5>
</div>
<!-- Boutons Valid/Reset -->
<div id="buttons">
<input type="submit" value="Valider" name="valider" />
</div>
</form>
</body>
</html>
[/html]
Et voici la partie PHP :
[php]
<?php
/* Si le formulaire est envoyé alors on fait les traitements */
if (isset($_POST['valider']))
{
/* Récupération des valeurs des champs du formulaire */
if (get_magic_quotes_gpc())
{
$civilite = stripslashes(trim($_POST['civilite']));
$nom = stripslashes(trim($_POST['nom']));
$prenom = stripslashes(trim($_POST['prenom']));
$adresse = stripslashes(trim($_POST['adresse']));
$cp = stripslashes(trim($_POST['cp']));
$ville = stripslashes(trim($_POST['ville']));
$digi = stripslashes(trim($_POST['digi']));
$etage = stripslashes(trim($_POST['etage']));
$porte = stripslashes(trim($_POST['porte']));
$telfixe = stripslashes(trim($_POST['telfixe']));
$telport = stripslashes(trim($_POST['telport']));
$adressemail = stripslashes(trim($_POST['adressemail']));
$adressiden = stripslashes(trim($_POST['adressiden']));
$rdvdate = stripslashes(trim($_POST['rdvdate']));
$rdvheure = stripslashes(trim($_POST['rdvheure']));
$ballon = stripslashes(trim($_POST['ballon']));
$pompe = stripslashes(trim($_POST['pompe']));
$ecol = stripslashes(trim($_POST['ecol']));
$econ = stripslashes(trim($_POST['econ']));
$hab = stripslashes(trim($_POST['hab']));
$proprio = stripslashes(trim($_POST['proprio']));
$ener_renouv = stripslashes(trim($_POST['ener_renouv']));
$songez = stripslashes(trim($_POST['songez']));
}
else
{
$civilite = trim($_POST['civilite']);
$nom = trim($_POST['nom']);
$prenom = trim($_POST['prenom']);
$adresse = trim($_POST['adresse']);
$cp = trim($_POST['cp']);
$ville = trim($_POST['ville']);
$digi = trim($_POST['digi']);
$etage = trim($_POST['etage']);
$porte = trim($_POST['porte']);
$telfixe = trim($_POST['telfixe']);
$telport = trim($_POST['telport']);
$adressemail = trim($_POST['adressemail']);
$adressiden = trim($_POST['adressiden']);
$rdvdate = trim($_POST['rdvdate']);
$rdvheure = trim($_POST['rdvheure']);
$ballon = trim($_POST['ballon']);
$pompe = trim($_POST['pompe']);
$ecol = trim($_POST['ecol']);
$econ = trim($_POST['econ']);
$hab = trim($_POST['hab']);
$proprio = trim($_POST['proprio']);
$ener_renouv = trim($_POST['ener_renouv']);
$songez = trim($_POST['songez']);
}
/* Expression régulière permettant de vérifier si le
* format d'une adresse e-mail est correct */
$regex_mail = '/^[-+.\w]{1,64}@[-.\w]{1,64}\.[-.\w]{2,6}$/i';
/* Si le formulaire n'est pas posté de notre site on renvoie
* vers la page d'accueil */
if($_SERVER['HTTP_REFERER'] != 'http://www.solar17.fr/traitement_devis.php')
{
header('Location: http://www.solar17.fr');
}
/* On vérifie que tous les champs sont remplis */
elseif (empty($civilite)
|| empty($nom)
|| empty($prenom)
|| empty($adresse)
|| empty($cp)
|| empty($ville)
|| empty($telfixe)
|| empty($adressemail))
{
$alert = 'Tous les champs de la partie CLIENT doivent être renseignés.';
}
/* On vérifie que le format de l'e-mail est correct */
elseif (!preg_match($regex_mail, $adressemail))
{
$alert = 'L\'adresse '.$adressemail.' n\'est pas valide';
}
/* Si aucun problème et aucun cookie créé, on construit le message et on envoie l'e-mail */
/* Mise en page du message */
$message = 'CLIENT : "\r\n"
"\r\n"
Civilité : '.$civilite.' "\r\n"
Nom : '.$nom.' "\r\n"
Prénom : '.$prenom.' "\r\n"
Adresse : '.$adresse.' "\r\n"
Code Postal : '.$cp' "\r\n"
Ville : '.$ville.' "\r\n"
Digicode : '.$digi.' "\r\n"
Etage : '.$etage.' "\r\n"
Porte : '.$porte.' "\r\n"
Tél. Fixe : '.$telfixe.' "\r\n"
Tél. Port : '.$telport' "\r\n"
Email : '.$adressemail.' "\r\n"
"\r\n"
CHANTIER : "\r\n"
Adresse identique : '.$adresseiden.' "\r\n"
"\r\n"
RENDEZ-VOUS
"\r\n"
Quand ? '.$rdv_quand.' "\r\n"
Heure ? '.$rdv_heure.' "\r\n"
"\r\n"
INTERET PRINCIPAL "\r\n"
"\r\n"
Ballon solaire : '.$ballon.' "\r\n"
Pompe à chaleur : '.$pompe.' "\r\n"
"\r\n"
INTERET DU PROJET "\r\n"
"\r\n"
Ecologie : '.$ecol.' "\r\n"
Economie : '.$econ.' "\r\n"
"\r\n"
LE FOYER "\r\n"
"\r\n"
Propriétaire depuis quand ? '.$proprio.' "\r\n"
"\r\n"
LE PROJET : "\r\n"
"\r\n"
Connaissez-vous les énergies renouvelables ? $ener_renouv "\r\n"
Depuis quand y songez vous ? '.$songe.' "\r\n"
"\r\n"
OBSERVATION(S) COMPLEMENTAIRE(S) : '.$observ_comp.' \n
"\r\n"
"\r\n"
CECI EST UN MESSAGE PROVENANT DU FORMULAIRE DE DEMANDE DE DEVIS DE http://www.solar17.fr "\r\n"
"\r\n"
"\r\n"
by HENNEQUIN MORGAN'"\r\n";
elseif (!isset($_COOKIE['sent']))
{
/* Destinataire */
$to = '
[email protected]';
/* Definition du sujet (ici tjs le même) */
$sujet = 'DEMANDE DE DEVIS WEB';
/* Construction du message */
$msg = 'Bonjour,'."\r\n\r\n";
$msg .= 'Ce mail a été envoyé depuis http://www.solar17.fr par '.$civilite.' '.$nom."\r\n\r\n";
$msg .= 'Voici ça demande de devis:'."\r\n";
$msg .= '***************************'."\r\n";
$msg .= $message."\r\n";
$msg .= '***************************'."\r\n";
/* En-têtes de l'e-mail */
$headers = 'From: '.$nom.' <'.$adressemail.'>'."\r\n\r\n";
/* Envoi de l'e-mail */
if (mail($to, $sujet, $msg, $headers))
{
$alert = 'Votre demande à été envoyé avec succès';
/* On créé un cookie de courte durée (ici 120 secondes) pour éviter de
* renvoyer un mail en rafraichissant la page */
setcookie("sent", "1", time() + 120);
/* On détruit la variable $_POST */
unset($_POST);
}
else
{
$alert = 'Erreur d\'envoi de votre demande';
}
}
/* Cas où le cookie est créé et que la page est rafraichie, on détruit la variable $_POST */
else
{
unset($_POST);
}
}
?>
[/php]
Je remercie d'avance la ou les personne(s) qui m'aideront ! Bon lundi à tous !
Morgan.