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 :

envoi de mail


Sujet :

Langage PHP

  1. #1
    Membre éclairé Avatar de solaar
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    607
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2007
    Messages : 607
    Par défaut envoi de mail
    Bonsoir je vous présente mon 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
    //fonction non commune envoye de message
    function do_message_form_html()
    {
    ?>
    <div id="mail_form">
     <?php
    @ $mail=$_POST['mail'];
    @ $nom=$_POST['nom'];
    @ $prenom=$_POST['prenom'];
    @ $sujet=$_POST['sujet'];
    @ $message=$_POST['message'];
    $toadresse='xxxxx';
    if (empty($_POST['nom'])||empty($_POST['mail'])||empty($_POST['sujet']))
    {
    echo("<form action='index.php' method='post'>
    <table width='0' border='0' cellpadding='0'  >
      <tr>
       <td><label>Nom </label></td>
       <td><input name='nom' tabindex='1' type='text' title='nom' maxlength='20' />*</td>
      </tr>
      <tr>
        <td><label>Prenom</label></td>
        <td><input name='prenom' tabindex='2' type='text'   maxlength='30'  /></td>
      </tr>
      <tr>
        <td><label>Mail</label></td>
        <td><input name='mail'   tabindex='3'  type='text'   maxlength='30' size='30' />*</td>
    	
    </tr>
    
       <tr>
        <td><label>Sujet</label></td>
        <td><input name='sujet'  tabindex='4'  type='text'   maxlength='30' size='50'/>*</td>
      </tr>
      
       <tr>
        <td><label>Message</label></td>
        <td><textarea name='message' tabindex='4' cols='40' rows='8'></textarea></td>
        </tr>
    </table>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    <input type='submit' name='envoye_message' tabindex='5' value='Envoyer Message'  style='font-size:11px;float:center;cursor:pointer;'/>
    </form>");
    }
    else{
    $mail=trim($mail);
    valid_email($mail);
    $nom=trim($nom);
    $prenom=trim($prenom);
    $sujet=trim($sujet);
     
    $message=trim($message);
    $conteneur= $prenom ." ".$nom."\n\n";
    mail($toadresse,$sujet,$message,$mail);
    echo'<p align=\'center\'>';
        echo'<a   href=\'../index.php\'> Retour à la page d\'Accueil</a>';
    echo("<br/><br/>");
    echo nl2br("$conteneur");
    echo'Vos message a été envoyé avec succè.';
    echo'</p>';
    }
    ?>
    </div>
    <?php
    }
    je sais vraiment pour quoi j'ai aucun résultat.
    je travail sur mon formulaire (index.php).


    Merci pour l'aide.

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Pourrais-tu être plus précis sur le problème rencontré ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    enlève les @
    il faut aussi tester si le mail a été envoyé

  4. #4
    Membre éclairé Avatar de solaar
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    607
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2007
    Messages : 607
    Par défaut
    message d'erreur sur chaque @ enlevé:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Notice: Undefined index: mail in C:\EasyPHP\www\contacts\mes_fonctions.php on line 53
    j'arrive pas en envoyer de mail.

    oké voilà!
    sur mon site j'ai le répertoire contact.
    j'ai une page index.php et dans la page index j'ai sa:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?php 
    include'mes_fonctions.php';
    do_html_heater('NOS CONTACTS');
    include 'corps_contacts.php';
    do_html_footer();
     
    ?>
    dans include 'corps_contacts.php'; j'ai une fonction do_message_form_html() qui vient de include'mes_fonctions.php';.
    et c'est le code de do_message_form_html() qui se trouve au dessus.
    je comprend vraiment et lorsque j'envois un message je ne reçois rien dans ma messagerie.

  5. #5
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    Citation Envoyé par solaar Voir le message
    message d'erreur sur chaque @ enlevé:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Notice: Undefined index: mail in C:\EasyPHP\www\contacts\mes_fonctions.php on line 53
    j'arrive pas en envoyer de mail.
    le champ mail n'est pas envoyé par ton formulaire

    sinon c'est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    if(mail($toadresse,$sujet,$message,$mail))
    {
        echo 'mail envoyé';
    }
    else
    {
        echo 'mail pas envoyé';
    }
    EDIT : le 4eme paramètre de mail n'est pas bon non plus :
    http://php.net/manual/fr/function.mail.php

  6. #6
    Membre éclairé Avatar de solaar
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    607
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2007
    Messages : 607
    Par défaut
    Attend je comprend rien là !
    je mon serveur local apache j'ai des messages d'erreur après enlèvement de plusieurs @.
    mon
    EDIT : le 4eme paramètre de mail n'est pas bon non plus
    mais c'est tout les paramètre après l'enlèvement des @.

    Question je sais pas si c'est ce que j'envoie les infos sur la même page:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "<form action='index.php' method='post'>
    .
    je tente de l'envoyer sur une autre page exemple <form action='register_mail_from.php' method='post'>

  7. #7
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Déjà, ton début est moche : couper une fonction pour mettre une ligne de HTML je trouve ça vraiment moche
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    function do_message_form_html()
    {
    echo '<div id="mail_form">';
    Ensuite ta logique est mauvaise, tu commences par traiter tes variables $_POST et tu vérifies ensuite si elles existent ou non.
    C'est dans le else{} que doit etre le traitement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    $toadresse='xxxxx';
    if (empty($_POST['nom'])||empty($_POST['mail'])||empty($_POST['sujet']))
    {
    ....
    }
    else {
    $mail=trim($_POST['mail']);
    $nom=trim($_POST['nom']);
    etc.
    Pour continuer, on se demande si tu as relu ton code, le premier paramètre de la fonction mail() c'est l'adresse de destination.
    Je ne pense pas que tu veuilles écrire à toi même donc ton premier paramètre c'est le $mail saisi dans le formulaire.
    Comme te l'indique Stealth35, le 4ème paramètre indique des en-tête supplémentaire, pas une adresse email.

    Pour finir
    Vos message a été envoyé avec succè.
    Tes utilisateurs apprécieront un minimum d'orthographe
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  8. #8
    Membre éclairé Avatar de solaar
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    607
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2007
    Messages : 607
    Par défaut
    Bonjour je vous présente tout mon code, j'ai du le modifier selon vos remarques :
    SVP Montrer de l'indulgence, il y a longtemps que j'ai laissé le langage PHP.

    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
     
    function do_message_form_html()
    {
    if (empty($_POST['nom'])||empty($_POST['mail'])||empty($_POST['sujet']))
    {
    echo(
    "<div id=\'mail_form\'>
    <form action='index.php' method='post'>
    <table width='0' border='0' cellpadding='0'  >
      <tr>
       <td><label>Nom </label></td>
       <td><input name='nom' tabindex='1' type='text' title='nom' maxlength='20' />*</td>
      </tr>
      <tr>
        <td><label>Prenom</label></td>
        <td><input name='prenom' tabindex='2' type='text'   maxlength='30'  /></td>
      </tr>
      <tr>
        <td><label>Mail</label></td>
        <td><input name='mail'   tabindex='3'  type='text'   maxlength='30' size='30' />*</td>
     
    </tr>
     
       <tr>
        <td><label>Sujet</label></td>
        <td><input name='sujet'  tabindex='4'  type='text'   maxlength='30' size='50' />*</td>
      </tr>
     
       <tr>
        <td><label>Message</label></td>
        <td><textarea name='message' tabindex='4' cols='50' rows='10'  > </textarea></td>
        </tr>
    </table>
    <input type='submit' name='envoye_message' tabindex='5' value='Envoyer Message'  style='font-size:11px;float:center;cursor:pointer;'/>
    </form></div>");
    }
    $nom=trim($_POST['nom']);
    $prenom=trim($_POST['prenom']);
    //@$mail=trim($_POST['mail']);
    //valid_email($mail);	
     
    $sujet=trim($_POST['sujet']);	
    $message=trim($_POST['message']);
     
    $conteneur= $prenom ." ".$nom."\n\n";
    $toadresse='ledestinataire';
    //$headers = "From:" .$mail. "\r\n";
     
    if(mail($toadresse,$sujet,$message))
    {
    echo'<div id=\'mail_form\'>';	
    echo("<p align='center'>");
    echo("<a   href='../index.php'> Retour Accueil</a>");
    echo("<br/><br/>");
    echo nl2br("$conteneur");
    echo'Votre message a été envoyé.';
    echo'</p>';
    echo '</div>';
    }
    else
    {
    echo'<div id=\'mail_form\'>';	
    echo("<p align='center'>");
    echo("<a   href='../index.php'> Retour Accueil</a>");
    echo("<br/><br/>");
    echo nl2br("$conteneur");
    echo'message non envoyé.';
    echo'</p>';
    echo '</div>';
    }
    j'ai besoin de correction car l'envoi du message ne passe toujours pas.
    Merci.

  9. #9
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    et qu'est qui marche pas y'a un message d'erreur ?

  10. #10
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    j'ai du le modifier selon vos remarques
    Ba non
    - le else{} a disparu
    - le destinataire est toujours $toadresse
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  11. #11
    Membre éclairé Avatar de solaar
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    607
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2007
    Messages : 607
    Par défaut
    slt!
    c'est ma première fois de rencontrer un tel problème.
    Le code ci-dessous marche bien et ne pose pas de problème sur un second hébergeur libre où je me suis inscrit pour le tester.
    Mais par contre sur un autre hébergeur non libre, il ne marche pas et je ne voix aucune erreur ( le message: Votre message a été envoyé).

    Est ce un problème d'hébergeur ?

  12. #12
    Membre éclairé Avatar de solaar
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    607
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2007
    Messages : 607
    Par défaut
    Merci à tout le monde en particulier sabotage. j'ai repris mon code et bien utilisé le else{}. mon code est bon.
    j'ai contacté mon hébergeur de site "un ami à moi"... il me dit que le problème vient de lui.
    Mais ce que je comprend pas il me demande de mettre sur $toadresse='ledestinataire';, une de mes boites ( gmail ou yahoo) ?

  13. #13
    Membre éclairé Avatar de solaar
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    607
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2007
    Messages : 607
    Par défaut
    Merci mon problème est résolut... c'est mon hébergeur de site web,qui a mal fait sa config.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Envoi de mail au format html
    Par Mephyston dans le forum C++Builder
    Réponses: 2
    Dernier message: 22/01/2004, 13h29
  2. Envoi de mail au format Rich-Text
    Par LineLe dans le forum ASP
    Réponses: 4
    Dernier message: 29/10/2003, 17h27
  3. envoi de mail avec attachement de fichier
    Par GMI3 dans le forum Modules
    Réponses: 2
    Dernier message: 24/09/2003, 12h22
  4. Outlook ne se ferme pas après un envoi de mail
    Par Joke dans le forum VBA Access
    Réponses: 2
    Dernier message: 07/06/2003, 18h32
  5. envoi de mail, protocol SMTP langage C
    Par Heimdall dans le forum Développement
    Réponses: 2
    Dernier message: 23/05/2003, 12h22

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