Formulaire de Contact problème a l'envoie

CharlesOnAir Messages postés 47 Date d'inscription   Statut Membre Dernière intervention   -  
 Utilisateur anonyme -
Bonjour,
j'ai crée un formulaire d'envoi pour mon site internet mais quand je veux envoyer mon mail un message d'erreur s'affiche donc il me situe la ligne ou il y a le problème et sur cette ligne il y a ceci : // Envoi du mail
if (mail($cible, $objet, $message, $headers))
Je ne comprends pas cette erreur
Cordialement Charles



2 réponses

ReDLoG Messages postés 243 Date d'inscription   Statut Membre Dernière intervention   57
 
Bonjour,
Quel est l'erreur affichée par le script?
Donnes le script ou la portion du script où tu déclares les variables $cible, $objet, $message et $headers. Penses à utiliser la balise code PHP au-dessus du message pour la coloration syntaxique :-)
Cordialement.
0
CharlesOnAir Messages postés 47 Date d'inscription   Statut Membre Dernière intervention  
 
Voici le code
*

  • Cette fonction sert à vérifier la syntaxe d'un email */function IsEmail($email){ $value = preg_match('/^(?:[\w\!\#\$\%\&\'\*\+\-\/\=\?\^\`\{\|\}\~]+\.)*[\w\!\#\$\%\&\'\*\+\-\/\=\?\^\`\{\|\}\~]+@(?:(?:(?:[a-zA-Z0-9_](?:[a-zA-Z0-9_\-](?!\.)){0,61}[a-zA-Z0-9_-]?\.)+[a-zA-Z0-9_](?:[a-zA-Z0-9_\-](?!$)){0,61}[a-zA-Z0-9_]?)|(?:\[(?:(?:[01]?\d{1,2}|2[0-4]\d|25[0-5])\.){3}(?:[01]?\d{1,2}|2[0-4]\d|25[0-5])\]))$/', $email); return (($value === 0) || ($value === false)) ? false : true;}// formulaire envoyé, on récupère tous les champs.$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']) : '';$antispam_h = (isset($_POST['antispam_h'])) ? Rec($_POST['antispam_h']) : '';$antispam_r = (isset($_POST['antispam_r'])) ? Rec($_POST['antispam_r']) : '';// 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 = false; // sert pour remplir le formulaire en cas d'erreur si besoinif (isset($_POST['envoi'])){ // On demande la vraie réponse $verif_nospam = NoSpamQuestion('ans', $antispam_r); if (strtolower($antispam_h) != strtolower($verif_nospam['answer'])) { // le formulaire s'arrête ici echo '<p>Vous n\'avez pas repondu correctement a la question Antispam ...</p>'; } else { if (($nom != '') && ($email != '') && ($objet != '') && ($message != '')) { // les 4 variables sont remplies, on génère puis envoie le mail $headers = 'MIME-Version: 1.0' . "\r\n"; $headers .= 'From:'.$nom.' <'.$email.'>' . "\r\n" . 'Reply-To:'.$email. "\r\n" . 'Content-Type: text/plain; charset="utf-8"; DelSp="Yes"; format=flowed '."\r\n" . 'Content-Disposition: inline'. "\r\n" . 'Content-Transfer-Encoding: 7bit'." \r\n" . 'X-Mailer:PHP/'.phpversion(); // envoyer une copie au visiteur ? if ($copie == 'oui') { $cible = $destinataire.','.$email; } else { $cible = $destinataire; }; // Remplacement de certains caractères spéciaux $message = str_replace("'","'",$message); $message = str_replace("’","'",$message); $message = str_replace(""",'"',$message); $message = str_replace('<br>','',$message); $message = str_replace('<br />','',$message); $message = str_replace("<","<",$message); $message = str_replace(">",">",$message); $message = str_replace("&","&",$message); // Envoi du mail if (mail($cible, $objet, $message, $headers)) { echo '<p>'.$message_envoye.'</p>'; } else { echo '<p>'.$message_non_envoye.'</p>'; }; } else { // une des 3 variables (ou plus) est vide ... echo '<p>'.$message_formulaire_invalide.'</p>'; $err_formulaire = true; }; };}; // fin du if (!isset($_POST['envoi']))if (($err_formulaire) || (!isset($_POST['envoi']))){
0
CharlesOnAir Messages postés 47 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour, RedLog voici l'erreur : ( ! ) Warning: 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 C:\wamp\www\Radio G\contact.php on line 175
Call Stack
# Time Memory Function Location
1 0.0005 282264 {main}( ) ..\contact.php:0
2 0.0015 303816 mail ( ) ..\contact.php:175
L'envoi du mail a ?chou?, veuillez r?essayer SVP.
0
ReDLoG Messages postés 243 Date d'inscription   Statut Membre Dernière intervention   57
 
Il y a un fichier nommé php.ini dans le dossier wamp > bin > php > php5.4.12 (le chemin peut être différent chez toi en fonction de ta version de Wamp) et dans ce fichier il faut indiquer le smtp de ton fournisseur d'accès et son port (si différent du 25).
[mail function]
; For Win32 only.
; https://www.php.net/manual/en/mail.configuration.php#ini.smtp
SMTP = localhost
; https://www.php.net/manual/en/mail.configuration.php#ini.smtp-port
smtp_port = 25

Cordialement.
0
CharlesOnAir Messages postés 47 Date d'inscription   Statut Membre Dernière intervention   > ReDLoG Messages postés 243 Date d'inscription   Statut Membre Dernière intervention  
 
Chez moi j'ai 3 dossier (php.ini.install, php.ini-development, php.ini-production je prend le quel ?
0
CharlesOnAir Messages postés 47 Date d'inscription   Statut Membre Dernière intervention  
 
A c'est bon j'ai trouve c'étais le php.ini.install mais le problème reste le même
0
ReDLoG Messages postés 243 Date d'inscription   Statut Membre Dernière intervention   57
 
Bizarre car dans ma config il y a bien php.ini, php.ini-development et php.ini-production. Tentes sur celui d'install et tu redémarres Wamp, ensuite tu testes ton envoi de mail, on ne sait jamais...
Cordialement.
0
CharlesOnAir Messages postés 47 Date d'inscription   Statut Membre Dernière intervention  
 
J'ai ressayer mais toujours rien mon adresse pour me connecter c'est localhost:81 donc mon port est 81 et sinon ne pense tu pas que c'est parce qu'il faut le mettre sur un hébergeur ?
0