Bonjour,
J'ai créé un site chez free.fr où j'ai integré un script contact captcha, j'ai aussi créé un dossier sessions vide à la racine du site. Le formulaire s'affiche correctement avec le captcha mais je ne reçois pas d'email ! J'ai pourtant bien indiqué mon adresse où il fallait dans le contact.php
Je ne sais pas d'où vient le pb. Ca fait le 5e formulaire que j'essaye mais je ne reçois jamais de message. J'ai lu qu'il y avait des problèmes avec la fonction mail et l'hebergeur free mais dans ce formulaire c'était écrit que si on créait un dossier "sessions" ça marcherait...or ça ne marche pas :( Merci pour votre aide.
Voilà le code, j'ai mis cette partie au début du site, en premier, avant meme la certification W3C :
<?
session_start(); //ouverture la session pour conserver le captcha
if (!isset($_POST["action"])) $_POST["action"]="";
if (!isset($_POST["nom"])) $_POST["nom"]=""; //déclaration de chaque élément de formulaire
if (!isset($_POST["prenom"])) $_POST["prenom"]="";
if (!isset($_POST["email"])) $_POST["email"]="";
if (!isset($_POST["sujet"])) $_POST["sujet"]="";
if (!isset($_POST["message"])) $_POST["message"]="";
if (!isset($_POST["captcha"])) $_POST["captcha"]="";
$msg="";
$flag=1;
// CI-DESSOUS remplacez l'adresse ($destinataire="contact@votreadresse.com";) par la vôtre
if ($_POST["action"]=="Envoyer" && $_POST["email"]!="" && strtolower($_POST["captcha"])==$_SESSION["phrase"]){
$destinataire="adam_le_bosss@hotmail.com"; //mettez ici votre adresse e-mail
$objet="Formulaire de contact du site web"; // titre du mail automatique
$message_envoi="Vous avez reçu une demande de contact ! \n";
$message_envoi.="Voici le contenu : \n"; //déclaration du contenu du message
$message_envoi.="Nom du contact :".$_POST["nom"]." \n";
$message_envoi.="Prénom du contact :".$_POST["prenom"]." \n";
$message_envoi.="E-mail du contact :".$_POST["email"]." \n";
$message_envoi.="Site web :".$_POST["url"]." \n";
$message_envoi.="Sujet :".$_POST["sujet"]." \n";
$message_envoi.="Message du contact :".$_POST["message"]." \n\n"; //rajouter apres cette ligne les autres éléments du formulaire
mail($destinataire,$objet,$message_envoi); // envoi du message
$flag=0; //si tout est OK, on passe cette variable à 1
}
else{
$msg="<span class='info'>Vous devez remplir tous les champs, portant un astérisque <span class='asterisque'>*</span>.</span> <span class='info-bis'>Merci</span>";
}
// début de la gestion de l'affichage du captcha
$monfichier=fopen("captcha.txt","r");
$i=0;
while(!feof($monfichier)){
$montab[$i]=fgets($monfichier,4096);
$i++;
}
fclose($monfichier);
shuffle($montab);
$elem0=explode(";",$montab[0]);
$elem1=explode(";",$montab[1]);
$elem2=explode(";",$montab[2]);
$elem3=explode(";",$montab[3]);
$elem4=explode(";",$montab[4]);
$phrase=$elem0[0].$elem1[0].$elem2[0].$elem3[0].$elem4[0];
$_SESSION["phrase"]=$phrase;
$img="<span class='img'><img src='img_captcha/".$elem0[1]."' alt=''/><img src='img_captcha/".$elem1[1]."' alt=''/><img src='img_captcha/".$elem2[1]."' alt=''/><img src='img_captcha/".$elem3[1]."' alt=''/><img src='img_captcha/".$elem4[1]."' alt=''/></span>";
//fin de la gestion du captcha
?>
En suite au milieu du site j'ai intégré la fin du code :
<?
if($flag==0){
// quand le message est parti voici ce qui est affiche, avec un lien retour vers la page de votre choix
//libre à vous de procéder aux modifications que vous souhaitez
echo "Merci pour votre message, nous vous répondrons dans les meilleurs délais<br />";
echo '<a href="history.back()">Retour</a>';
}
else {
?>
<!-- A partir d'ici il s'agit du traitement du formulaire (ce qui est apparent)-->
<div id="formu">
<form method="post" name="contact" action="<?php echo $PHP_SELF ?>">
<fieldset>
<legend>Formulaire de Contact</legend>
<p><? echo $msg ?></p>
<p><label>Nom <span class='asterisque'>*</span> : </label><input type="text" name="nom" value="<?php echo $_POST["nom"] ?>" /></p>
<p><label>Prénom <span class='asterisque'>*</span> : </label><input type="text" name="prenom" value="<?php echo $_POST["prenom"] ?>" /></p>
<p><label>E-mail <span class='asterisque'>*</span> : </label><input type="text" name="email" value="<?php echo $_POST["email"] ?>"/></p>
<p><label>Site web : </label><input type="text" name="url" value="<?php echo $_POST["url"] ?>"/></p>
<p><label>Sujet <span class='asterisque'>*</span> : </label><input type="text" name="sujet" value="<?php echo $_POST["sujet"] ?>" /></p>
<!-- vous pouvez rajouter des éléments de formulaires ici -->
<p><label>Message <span class='asterisque'>*</span> : <br /><br /></label><textarea name="message" cols="40" rows="8"><?php echo $_POST["message"] ?></textarea></p>
<p class="captcha"><? echo $img ?> Recopiez le texte de l'image : <input type="text" name="captcha" size="5"/></p>
<p class="signature"><?
// Ce script a été créé gratuitement pour vous !
// Merci de laisser les lignes suivantes pour faire connaitre le script...
echo "\n\n\n\n\n\n<!--
###########################################################
Formulaire de contact + Captcha modifié et proposé par : Patrick HAMY - 15-12-2007
Les 36 images du captcha sont réalisées par Patrick HAMY Il est interdit de les monnayer !
Site:
[ Lien ]
Licenge : GPL/Le script peut être modifié et proposé, à condition de ne pas enlever
les mentions et liens correspondant à son origine !
Le script est gratuit et doit impérativement le rester !
###########################################################
--> \n\n\n\n\n ";
//Merci
?></p>
</fieldset>
<br /><input type="submit" name="action" value="Envoyer" /> <input type="reset" name="reset" value="Réinitialiser" class="button" />
</form></div>
<!-- Ici c'est la fin du traitement du formulaire-->
<? } ?>