IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Mail] Problème avec mon script d'envoi de mail


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    CONSULTANT
    Inscrit en
    Octobre 2005
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : CONSULTANT

    Informations forums :
    Inscription : Octobre 2005
    Messages : 28
    Points : 10
    Points
    10
    Par défaut [Mail] Problème avec mon script d'envoi de mail
    Bonjour à tous,

    je suis en train de mettre en place un petit formulaire d'envoi de mail, le problème c'est que ça ne fonctionne pas.

    Pour plus de visibilité, voici le code source du formulaire de validation + le fichier php qui gère l'envoi des données :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    <p><form action="email.php" method="post">
    	<table cellspacing="0" cellpadding="0" style="margin:0px;" border="0px;">
                  <tr><td>Personne à contacter : </td><td><select name="email">
    			      <option value="monemail1@yahoo.fr">monemail1</option>
    			      <option value="monemail2@hotmail.com">monemail2</option>
     	</select></td></tr>	
    	<tr><td></td></tr>
    	<tr><td>Votre message : </td><td><textarea name="message" cols=30 rows=6 wrap="soft"></textarea><br></td></tr>
    	<tr><td>Votre Nom : </td><td><input type="text" name="auteur" size=30 maxlength=50></td></tr>
    	<tr><td>Adresse mail : </td><td><input type="text" name="courriel" size=30 maxlength=50></td></tr>
    	<tr><td></td></tr></table>
    	<center><input type="submit" value="Envoyer"></center>
    	</form></p>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    <? 
    trim($message); 
    trim($auteur); 
    trim($courriel); 
     
    if($message == "" OR $auteur == "" OR $courriel == ""); 
    { 
    @header("Location: http://www.erreur.html"); //page sur laquelle on redirige le visiteur s'il n'a pas rempli un des champs ci dessus
    @exit();
    } 
    mail("$email","$message","$auteur","$courriel","From: $auteur"); 
    @header("Location: http://www.ok.html"); //page sur laquelle on redirige le visiteur si le formulaire est complet
    ?>
    Merci pour vos lumières.

  2. #2
    Membre émérite
    Avatar de yiannis
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 494
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 494
    Points : 2 791
    Points
    2 791
    Par défaut
    essaie cela:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    mail($email,$message,$auteur,$courriel,"From: ".$auteur");

  3. #3
    Membre à l'essai
    Profil pro
    CONSULTANT
    Inscrit en
    Octobre 2005
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : CONSULTANT

    Informations forums :
    Inscription : Octobre 2005
    Messages : 28
    Points : 10
    Points
    10
    Par défaut
    Merci pour ta réponse par contre j'ai un message d'erreur aussitôt après validé le formulaire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in /home/hosted/usersSpace/983/ftp/formaconsult.asso.fr/www/email.php on line 12

  4. #4
    Membre émérite
    Avatar de yiannis
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 494
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 494
    Points : 2 791
    Points
    2 791
    Par défaut
    oups desole
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    mail($email,$message,$auteur,$courriel,"From: ".$auteur);
    ca ca devrait fonctionner

  5. #5
    Membre à l'essai
    Profil pro
    CONSULTANT
    Inscrit en
    Octobre 2005
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : CONSULTANT

    Informations forums :
    Inscription : Octobre 2005
    Messages : 28
    Points : 10
    Points
    10
    Par défaut
    Merci Yiannis mais malheureusement le script m'oriente sur la page d'erreur comme quoi tous les champs du formulaire doivent être remplis.

    Et je n'ai pas reçu le message ??

  6. #6
    Membre émérite
    Avatar de yiannis
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 494
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 494
    Points : 2 791
    Points
    2 791
    Par défaut
    ok procedons par ordre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    <?
    $message = trim($_POST['message']);
    $auteur = trim($_POST['auteur']);
    $courriel =trim($_POST['courriel']);
     
    if($message == "" || $auteur == "" || $courriel == "");
    {
    @header("Location: http://www.erreur.html"); //page sur laquelle on redirige le visiteur s'il n'a pas rempli un des champs ci dessus
    @exit();
    }
    $from = "From: ".$auteur;
    mail($email,$message,$auteur,$courriel,$from);
    @header("Location: http://www.ok.html"); //page sur laquelle on redirige le visiteur si le formulaire est complet
    ?>
    autre chose, ou est la variable $email?

  7. #7
    Membre à l'essai
    Profil pro
    CONSULTANT
    Inscrit en
    Octobre 2005
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : CONSULTANT

    Informations forums :
    Inscription : Octobre 2005
    Messages : 28
    Points : 10
    Points
    10
    Par défaut
    Même chose que tout à l'heure, je suis automatiquement renvoyé vers la page d'erreur comme quoi certains champs n'ont pas été remplis.

    Voici ton code pourtant très clair et cohérent modifié avec la $email en plus :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    <?
    $email = trim($_POST['email']);
    $message = trim($_POST['message']);
    $auteur = trim($_POST['auteur']);
    $courriel =trim($_POST['courriel']);
     
    if($message == "" || $auteur == "" || $courriel == "");
    {
    @header("Location: http://www.erreur.html"); //page sur laquelle on redirige le visiteur s'il n'a pas rempli un des champs ci dessus
    @exit();
    }
    $from = "From: ".$auteur;
    mail($email,$message,$auteur,$courriel,$from);
    @header("Location: http://www.ok.html"); //page sur laquelle on redirige le visiteur s'il n'a pas rempli un des champs ci dessus
    ?>

  8. #8
    Membre émérite
    Avatar de yiannis
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 494
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 494
    Points : 2 791
    Points
    2 791
    Par défaut
    ok procedons autrement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    <?
     
    if(!isset($_POST['message']) || !isset($_POST['auteur'])  || !isset($_POST['courriel']))
    {
    @header("Location: http://www.erreur.html"); //page sur laquelle on redirige le visiteur s'il n'a pas rempli un des champs ci dessus
    }else{
    $email = trim($_POST['email']);
    $message = trim($_POST['message']);
    $auteur = trim($_POST['auteur']);
    $courriel =trim($_POST['courriel']);
     
    $from = "From: ".$auteur;
    mail($email,$message,$auteur,$courriel,$from);
    @header("Location: http://www.ok.html"); //page sur laquelle on redirige le visiteur s'il n'a pas rempli un des champs ci dessus
     //page sur laquelle on redirige le visiteur si le formulaire est complet
    }
    ?>
    essaie celui ci

  9. #9
    Membre à l'essai
    Profil pro
    CONSULTANT
    Inscrit en
    Octobre 2005
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : CONSULTANT

    Informations forums :
    Inscription : Octobre 2005
    Messages : 28
    Points : 10
    Points
    10
    Par défaut
    C'est déjà beaucoup mieux, effectivement il m'oriente vers la page OK comme quoi mon message a bien été envoyé, soucis pour l'instant je n'ai pas reçu le message dans ma boite test.

    Merci en tous les cas tu es super efficace Yiannis.

  10. #10
    Membre à l'essai
    Profil pro
    CONSULTANT
    Inscrit en
    Octobre 2005
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : CONSULTANT

    Informations forums :
    Inscription : Octobre 2005
    Messages : 28
    Points : 10
    Points
    10
    Par défaut
    J'ai pas reçu mes messages tests pourtant l'adresse est fiable ???

  11. #11
    Membre émérite
    Avatar de yiannis
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 494
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 494
    Points : 2 791
    Points
    2 791
    Par défaut
    merci
    juste une petite question, que sont les variables $auteur et $courriel?

    car pour la fonction mail elle ne prends que quelque parametres:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mail($recipient, $subject, $message, $headers);
    ou $recipient->l'addresse ou est envoye le mail.
    $subject->le sujet du mail.
    $message->le message.
    $header->contient plein d'infos(ie: le from,le Cc,le BCC etc).

  12. #12
    Membre à l'essai
    Profil pro
    CONSULTANT
    Inscrit en
    Octobre 2005
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : CONSULTANT

    Informations forums :
    Inscription : Octobre 2005
    Messages : 28
    Points : 10
    Points
    10
    Par défaut
    alors la $auteur correspond au champs "nom" donc le nom de la personne, ensuite la $courriel, c'est l'email de cette même personne qui envoie le message.

  13. #13
    Membre émérite
    Avatar de yiannis
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 494
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 494
    Points : 2 791
    Points
    2 791
    Par défaut
    met ces champs la dans le corps de ton message

  14. #14
    Membre à l'essai
    Profil pro
    CONSULTANT
    Inscrit en
    Octobre 2005
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : CONSULTANT

    Informations forums :
    Inscription : Octobre 2005
    Messages : 28
    Points : 10
    Points
    10
    Par défaut
    c'est à dire ?

    je dois les remplacer ?

  15. #15
    Membre à l'essai
    Profil pro
    CONSULTANT
    Inscrit en
    Octobre 2005
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : CONSULTANT

    Informations forums :
    Inscription : Octobre 2005
    Messages : 28
    Points : 10
    Points
    10
    Par défaut
    je ne dois pas utiliser les $courriel et $auteur en fait ?

    en résumé la $message englobe l'email de l'expéditeur + son nom + son message, c'est bien ça je penses

  16. #16
    Membre à l'essai
    Profil pro
    CONSULTANT
    Inscrit en
    Octobre 2005
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : CONSULTANT

    Informations forums :
    Inscription : Octobre 2005
    Messages : 28
    Points : 10
    Points
    10
    Par défaut
    je vois pas comment le coder en fait même si j'ai bien compris le principe

  17. #17
    Membre émérite
    Avatar de yiannis
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 494
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 494
    Points : 2 791
    Points
    2 791
    Par défaut
    excuse moi mais la, je dois m'en aller alors, je te renvoie sur la doc
    http://php.developpez.com/faq/?page=mail#envoi-mail

    bon courage te bon developpement

  18. #18
    Membre à l'essai
    Profil pro
    CONSULTANT
    Inscrit en
    Octobre 2005
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : CONSULTANT

    Informations forums :
    Inscription : Octobre 2005
    Messages : 28
    Points : 10
    Points
    10
    Par défaut
    Merci pour tout et peut être à bientôt

  19. #19
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 50
    Points : 30
    Points
    30
    Par défaut
    Bonjour,

    Pour ma part j'y comprends rien!!

    Je veux aussi faire un formulaire de contact avec des htmlentities pour protéger mon formulaire.

    Voici le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
     
      <?
       if ($_POST['nom'] != NULL AND $_POST['prenom'] != NULL AND $_POST['age'] != NULL AND $_POST['email'] != NULL AND $_POST['sujet'] != NULL AND $_POST['message'] != NULL)
       {
         $nom = htmlentities ($_POST['nom']);
         $prénom = htmlentities ($_POST['prenom']);  
    	 $age = htmlentities ($_POST['age']); 
    	 $email = htmlentities ($_POST['email']); 
    	 $sujet = htmlentities ($_POST['sujet']); 
    	 $message = htmlentities ($_POST['message']); 
        }
      ?>
     
      <?
    	 $monfichier = fopen('templates.txt', 'r'); 
    	 $pages_vues = fgets($monfichier); 
         $pages_vues++; 
         fseek($monfichier, 0); 
         fputs($monfichier, pages_vues); 
         fclose($monfichier); 
      ?>
     
       <FORM NAME="contact" ACTION="mailto:australiankou@yahoo.fr" METHOD="post" ENCTYPE="text/plain"> 
       <INPUT TYPE="hidden" NAME="Netcenters" VALUE="contact Netcenters">
        <fieldset>
    	 <legend>Vos coordonnées</legend>
    	   <label>Nom<br/>
    	   <input type="text"name="nom"tabindex="10"/></label>
    	  <br/>
    	   <label>Prénom<br/>
    	   <input type="text"name="prenom"tabindex="20"/></label>
    	  <br/>
    	   <label>Age(falcutatif)<br/>
    	   <input type="text"name="age"tabindex="30"/></label>
    	   <br/>
    	   <p> 
            <? 
             if (isset($_POST['E-mail'])) 
             { 
              if (preg_match("!^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$!", $_POST['E-mail'])) 
              { 
               echo 'L\'adresse ' . $_POST['E-mail'] . ' est <strong>valide</strong> !'; 
              } 
             else 
              { 
               echo 'L\'adresse ' . $_POST['E-mail'] . ' n\'est pas valide, recommencez !'; 
              } 
             } 
           ?> 
    	   <label>Email<br/>
    	   <input type="text"name="email"tabindex="40"/></label>
    	</fieldset>
     
    	<fieldset>
    	 <legend>Votre question</legend>
    	  <p>
    	   <label>A propos de<? htmlentities ($_POST['a_propos_de']); ?><br/>
    	   <select name="description"tabindex="50">
    	    <option value="site">Site<? htmlentities ($_POST['site']); ?></option>
    		<option value="souvenir">Coup de coeur<? htmlentities ($_POST['coup_de_coeur']); ?></option>
    		<option value="souvenir">Memorium<? htmlentities ($_POST['memorium']); ?></option>
    		<option value="question">Question<? htmlentities ($_POST['question']); ?></option>
    	    <option value="probleme">Problème<? htmlentities ($_POST['probleme']); ?></option>
    	    <option value="autre">Autre<? htmlentities ($_POST['autre']); ?></option>
    	   </select>
    	   </label>
    	  <br/>
    	   <label>Sujet<br/>
    	   <input type="text"name="sujet"tabindex="60"/></label>
    	  <br/>
    	   <label>Message<br/>
    	   <textarea name="message"rows="10"cols="50"tabindex="70"></textarea>
    	  </p>
    	</fieldset>
     
    	<p>
    	 <INPUT TYPE="submit" VALUE="Envoyer"><input type="reset" value="effacer"/>
    	</p>
       </form>
    J'aimerais faire que mon formulaire envoie chez moi sans que personne vois mon adresse email.

    Merci

Discussions similaires

  1. Envoi de mails - Problème avec WEB.MAIL
    Par crapouye dans le forum VB.NET
    Réponses: 8
    Dernier message: 01/10/2007, 11h57
  2. Problème avec mon script shell case in esac
    Par Olivier Regnier dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 28/06/2007, 22h54
  3. [Mail] problème avec un script envoi email
    Par baguira dans le forum Langage
    Réponses: 1
    Dernier message: 28/02/2007, 11h15
  4. prob avec mon formulaire d'envoi de mail
    Par zorba49 dans le forum ASP
    Réponses: 12
    Dernier message: 06/02/2007, 11h52
  5. Problème avec mon script
    Par Toinou0123 dans le forum PHP & Base de données
    Réponses: 10
    Dernier message: 30/09/2006, 18h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo