PHP - Formulaire de contact
Résolu
Flyma
-
Ricky38 Messages postés 4349 Date d'inscription Statut Contributeur Dernière intervention -
Ricky38 Messages postés 4349 Date d'inscription Statut Contributeur Dernière intervention -
Bonsoir,
J'ai téléchargé un script de contact par e-mail. Le voici :
Lorsque je remplie le formulaire tout ce passe bien mais lorsque je clique sur envoyer un message d'erreur s'affiche :
La ligne 99 étant :
Voila je cherche l'erreur ^^ C'est peut être tout bête mais je debute =)
Merci d'avance !
J'ai téléchargé un script de contact par e-mail. Le voici :
<?php /* ******************************************************************************************** CONFIGURATION ******************************************************************************************** */ // destinataire est votre adresse mail. Pour envoyer à plusieurs à la fois, séparez-les par une virgule $destinataire = 'ICI J'AI MIS MON ADRESSE^^'; // copie ? (envoie une copie au visiteur) $copie = 'oui'; // Action du formulaire (si votre page a des paramètres dans l'URL) // si cette page est index.php?page=contact alors mettez index.php?page=contact // sinon, laissez vide $form_action = ''; // Messages de confirmation du mail $message_envoye = "Votre message nous est bien parvenu !"; $message_non_envoye = "L'envoi du mail a échoué, veuillez réessayer SVP."; // Message d'erreur du formulaire $message_formulaire_invalide = "Vérifiez que tous les champs soient bien remplis et que l'email soit sans erreur."; /* ******************************************************************************************** FIN DE LA CONFIGURATION ******************************************************************************************** */ /* * cette fonction sert à nettoyer et enregistrer un texte */ function Rec($text) { $text = trim($text); // delete white spaces after & before text if (1 === get_magic_quotes_gpc()) { $stripslashes = create_function('$txt', 'return stripslashes($txt);'); } else { $stripslashes = create_function('$txt', 'return $txt;'); } // magic quotes ? $text = $stripslashes($text); $text = htmlspecialchars($text, ENT_QUOTES); // converts to string with " and ' as well $text = nl2br($text); return $text; }; /* * Cette fonction sert à vérifier la syntaxe d'un email */ function IsEmail($email) { $pattern = "^([a-z0-9_]|\\-|\\.)+@(([a-z0-9_]|\\-)+\\.)+[a-z]{2,7}$"; return (eregi($pattern,$email)) ? true : false; }; $err_formulaire = false; // sert pour remplir le formulaire en cas d'erreur si besoin // si formulaire envoyé, on récupère tous les champs. Sinon, on initialise les variables. $nom = (isset($_POST['nom'])) ? Rec($_POST['nom']) : ''; $email = (isset($_POST['email'])) ? Rec($_POST['email']) : ''; $objet = (isset($_POST['objet'])) ? Rec($_POST['objet']) : ''; $message = (isset($_POST['message'])) ? Rec($_POST['message']) : ''; if (isset($_POST['envoi'])) { // On va vérifier les variables et l'email ... $email = (IsEmail($email)) ? $email : ''; // soit l'email est vide si erroné, soit il vaut l'email entré $err_formulaire = (IsEmail($email)) ? false : true; if (($nom != '') && ($email != '') && ($objet != '') && ($message != '')) { // les 4 variables sont remplies, on génère puis envoie le mail $headers = 'From: '.$nom.' <'.$email.'>' . "\r\n"; // envoyer une copie au visiteur ? if ($copie == 'oui') { $cible = $destinataire.','.$email; } else { $cible = $destinataire; }; // Remplacement de certains caractères spéciaux $message = html_entity_decode($message); $message = str_replace(''',"'",$message); $message = str_replace('’',"'",$message); $message = str_replace('<br>','',$message); $message = str_replace('<br />','',$message); // Envoi du mail if (mail($cible, $objet, $message, $headers)) { echo '<p>'.$message_envoye.'</p>'."\n"; } else { echo '<p>'.$message_non_envoye.'</p>'."\n"; }; } else { // une des 3 variables (ou plus) est vide ... echo '<p>'.$message_formulaire_invalide.' <a href="contact.php">Retour au formulaire</a></p>'."\n"; $err_formulaire = true; }; }; // fin du if (!isset($_POST['envoi'])) if (($err_formulaire) || (!isset($_POST['envoi']))) { // afficher le formulaire echo '<form id="contact" method="post" action="'.$form_action.'">'."\n"; echo ' <fieldset><legend>Vos coordonnées</legend>'."\n"; echo ' <p>'."\n"; echo ' <label for="nom">Nom :</label>'."\n"; echo ' <input type="text" id="nom" name="nom" value="'.stripslashes($nom).'" tabindex="1" />'."\n"; echo ' </p>'."\n"; echo ' <p>'."\n"; echo ' <label for="email">Email :</label>'."\n"; echo ' <input type="text" id="email" name="email" value="'.stripslashes($email).'" tabindex="2" />'."\n"; echo ' </p>'."\n"; echo ' </fieldset>'."\n"; echo ' <fieldset><legend>Votre message :</legend>'."\n"; echo ' <p>'."\n"; echo ' <label for="objet">Objet :</label>'."\n"; echo ' <input type="text" id="objet" name="objet" value="'.stripslashes($objet).'" tabindex="3" />'."\n"; echo ' </p>'."\n"; echo ' <p>'."\n"; echo ' <label for="message">Message :</label>'."\n"; echo ' <textarea id="message" name="message" tabindex="4" cols="30" rows="8">'.stripslashes($message).'</textarea>'."\n"; echo ' </p>'."\n"; echo ' </fieldset>'."\n"; echo ' <div style="text-align:center;"><input type="submit" name="envoi" value="Envoyer le formulaire !" /></div>'."\n"; echo '</form>'."\n"; }; ?>
Lorsque je remplie le formulaire tout ce passe bien mais lorsque je clique sur envoyer un message d'erreur s'affiche :
Warning: mail() [function.mail]: Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in I:\[...]\contact.php on line 99
La ligne 99 étant :
if (mail($cible, $objet, $message, $headers))
Voila je cherche l'erreur ^^ C'est peut être tout bête mais je debute =)
Merci d'avance !
A voir également:
- PHP - Formulaire de contact
- Whatsapp formulaire opposition - Guide
- Formulaire de réclamation facebook - Guide
- Formulaire de reclamation instagram - Guide
- Easy php - Télécharger - Divers Web & Internet
- Formulaire de contact le bon coin introuvable ✓ - Forum Vos droits sur internet
3 réponses
ok de 1 dans CONFIGURATION efface la ligne
Dans le formulaire en bas de ton code au lieu de
mets
$form_action = '';
Dans le formulaire en bas de ton code au lieu de
echo '<form id="contact" method="post" action="'.$form_action.'">'."\n";
mets
echo '<form id="contact" method="post" action="<?php echo $_SERVER['PHP_SELF'];?>";
Ok, j'ai essayé mais maintenant il me met :
Merci pour ta reponse =D ... T'aurait pas une idée ?
Parse error: parse error, expecting `','' or `';'' in I:\[..]\contact.php on line 116
Merci pour ta reponse =D ... T'aurait pas une idée ?