Probleme avec mon envoyeur de mail .php

Fermé
deadangel04 Messages postés 112 Date d'inscription vendredi 28 mars 2014 Statut Membre Dernière intervention 2 août 2015 - 10 juil. 2014 à 18:51
Marlocq Messages postés 117 Date d'inscription mardi 19 novembre 2013 Statut Membre Dernière intervention 10 septembre 2023 - 14 juil. 2014 à 09:41
Bonjour,
Voici mon "envoyeur de mail":
<?php  
//Ecrivez votre adresse e-mail entre les guillemets  
$destinataire='icietaitecritmonadresse@outlook.fr';  
?><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Strict//EN" "http://www.w3.org/TR/html4/strict.dtd">  
<html lang="fr">  
<head>  
  <title>Contact</title>  
  <style type="text/css">  
    form#contact{border:2px solid red;width:70%;padding:1em}  
    p#msg,p#adr,p#obj{border:2px solid green;margin-right:10%;padding:10px}  
    p#msg textarea{border:2px solid blue;height:30em;width:80%}  
    p#adr input,p#obj input{border:2px solid blue}  
    p.bt{text-align:center}  
    p.bt input{border:1px red solid;width:50%}  
  </style>  
  <meta http-equiv="content-type" content="Content-type:text/html;charset=iso-8859-1">  
</head>  
<body style="direction: ltr;">  
<h1>Contact</h1>  
<?php  
$Previsualiser='<p class="bt">  
<input type="submit" name="previsualiser" tabindex="3" value="Previsualiser"></p>';  
$Envoi="\n".'<p class="bt">  
<input name="envoi" tabindex="4" value="Envoyer" type="submit"></p>';  
if (isset($_POST['message']))  
  {  
    // La variable $verif va nous permettre d'analyser si la sémantique de l'email est bonne  
    $verif='#^[\w.-]+@[\w.-]+\.[a-zA-Z]{2,5}$#';  
    //quelques remplacements pour les specialchars  
    $message=preg_replace('#(<|>)#', '-', $_POST['message']);  
    $message=str_replace('"', "'",$message);  
    $message=str_replace('&', 'et',$message);  
    $objet=preg_replace('#(<|>)#', '-', $_POST['objet']);  
    $objet=str_replace('"', "'",$objet);  
    $objet=str_replace('&', 'et',$objet);  
    // On assigne et/ou protège nos variables  
    $votremail=stripslashes(htmlentities($_POST['votremail']));  
    $message=stripslashes(htmlspecialchars($message));  
    $objet=stripslashes(htmlspecialchars($objet));  
    //input envoi/previsualiser  
    $envoi=htmlentities($_POST['envoi']);  
    $previsualiser=htmlentities($_POST['previsualiser']);  
    //on enlève les espaces  
    $votremail=trim($votremail);  
    $message=trim($message);  
    $objet=trim($objet);  

    $apercu_resultat='<p>Aperçu du resultat :</p>';  

    /*On vérifie si l'e mail et le message sont pleins, et on agit en fonction.  
      (on affiche Apercu du resultat, tel ou tel champ est vide, etc...*/  
    //Si ca ne vas pas (mal rempli, mail non valide...)  
    if((empty($message))or(empty($objet))or(!preg_match($verif,$votremail)))  
      {  
        //les 3 champs sont vides  
        if(empty($votremail)and(empty($message))and(empty($objet)))  
          {  
            echo '<p>Tous les champs sont vides.</p>';  
            $message='';$votremail='';$objet='';$apercu_resultat='';  
          }  
        //un des champs est vide  
        else  
          {  
            if(!preg_match($verif,$votremail))  
              echo'<p>Votre adresse e-mail n\'est pas valide.</p>';  
            else  
            {  
              echo'<p>Il faut remplir tous les champs !</p>';  
              if(empty($message))  
                $apercu_resultat='';  
            }  
          }  
      }  
    //Si les deux sont pleins et que l'adresse est valide, on envoie on on prévisualise sans envoi  
    else  
      {  
        $domaine=preg_replace('#[^@]+@(.+)#','$1',$votremail);  
        $DomaineMailExiste=checkdnsrr($domaine,'MX');  
        if(!$DomaineMailExiste)  
          echo'<p>Le nom de domaine de l\'adresse e-mail que vous avez donne n\'existe pas.</p>';  
        elseif(!empty($previsualiser))  
            {  
              $apercu_resultat='<p>Votre message et votre adresse e-mail sont valides et prêts à être envoyes.  
              <br>Vous n\'avez plus qu\'à cliquer sur le bouton "Envoyer".<br>Previsualisation :</p>';  
              $Previsualiser='';  
            }  
        elseif(!empty($envoi))  
            {  
              $objet='[SITE] : '.$objet;  
              $headers='From:'.$votremail."\r\n".'To:'.$mail."\r\n".'Subject:'.$objet."\r\n".'Content-type:text/plain;charset=iso-8859-1'."\r\n".'Sent:'.date('l, F d, Y H:i');  
              if(mail($destinataire,$objet,$message,$headers))  
              {  
                echo '<p>Votre message a bien ete envoye. Merci.</p><p><a href="/">Retour à la page d\'accueil</a></p>';  
                $Envoi='';  
                $Previsualiser='';  
              }  
              else  
                echo'<p>Un problème est survenu durant l\'envoi du mail.</p>';  
            }  
        else  
          echo'<p>Une condition innatendue est survenue lors de l\'execution du script.</p>';  
      }  
echo $apercu_resultat;  
  }  
else  
  {  
  echo '<p>Vous pouvez utiliser ce formulaire pour me contacter.</p>';  
  $votremail='';$message='';  
  }  
$bas_formulaire=$Previsualiser.$Envoi;  
?>  
<form id='contact' method="post" action="<?php echo $_SERVER['PHP_SELF'];?>" enctype="multipart/form-data">  
  <p id='obj'><label for='objet'>Objet de votre message :<br>  
  <input type='text' name='objet' id='objet' tabindex='10' size='30'></label></p>   

  <p id="adr"><label for="mail">Votre Adresse E-mail<br>  
  <input name="votremail" tabindex="20" size="30" type="text" id="mail" value="<?php echo $votremail; ?>"></label></p>  
    
  <p id="msg"><label for="message">Votre message<br>  
  <textarea tabindex="30" rows="20" cols="120" name="message" id="message"><?php echo $message; ?></textarea>  
  </label></p>  
<?php echo $bas_formulaire;?>  
</form>  
</body>  
</html>


Et donc malheureusement, celui ci lorsque je le test sur Wamp me dit qu'il y a une erreur a la lifne 41 90 et 91 mais je ne vois pas lesquelles, si quelqu'un a des propositions je suis a l'ecoute, merci


A voir également:

3 réponses

Marlocq Messages postés 117 Date d'inscription mardi 19 novembre 2013 Statut Membre Dernière intervention 10 septembre 2023
11 juil. 2014 à 11:21
un input submit n'est pas une variable récupérable il n'y a rien dedans. Quant tu clique sur le submit tu lance l'action si tu préfères... d'ou l'erreur je pense.
Pour la ligne 90 je ne vois ou tu initialise ta variable $mail et a partir de la découle surement l'erreur en 91 vu que ton $headers n'est pas complet
0
deadangel04 Messages postés 112 Date d'inscription vendredi 28 mars 2014 Statut Membre Dernière intervention 2 août 2015 34
11 juil. 2014 à 22:33
euh merci pour ta réponse mais je suis censé faire quoi? a la ligne 90 je rajoute le $headers dans la parenthese avec le reste? et pour la ligne 41? merci :)
0
Marlocq Messages postés 117 Date d'inscription mardi 19 novembre 2013 Statut Membre Dernière intervention 10 septembre 2023
14 juil. 2014 à 09:41
La ligne 91 tu dois définir $mail par un email qui sert a dire de qui est envoyer le mail a la personne qui le reçois
0