Formulaire de Contact problème a l'envoie

CharlesOnAir Messages postés 56 Statut Membre -  
 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

  1. ReDLoG Messages postés 393 Statut Membre 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
    1. CharlesOnAir Messages postés 56 Statut Membre
       
      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 56 Statut Membre
     
    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
    1. ReDLoG Messages postés 393 Statut Membre 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
    2. CharlesOnAir Messages postés 56 Statut Membre > ReDLoG Messages postés 393 Statut Membre
       
      Chez moi j'ai 3 dossier (php.ini.install, php.ini-development, php.ini-production je prend le quel ?
      0
    3. CharlesOnAir Messages postés 56 Statut Membre
       
      A c'est bon j'ai trouve c'étais le php.ini.install mais le problème reste le même
      0
    4. ReDLoG Messages postés 393 Statut Membre 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
    5. CharlesOnAir Messages postés 56 Statut Membre
       
      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