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 :

Problème de formulaire PHP


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 653
    Par défaut Problème de formulaire PHP
    Bonjour le forum,

    J'ai un PB avec mon programme de mon mail.php.
    En effet le destinataire ne reçoit rien et moi non plus.
    Pour l'exemple, j'ai mis le site toto.fr

    voici le code pour un mail simple, mais j'essaie aussi de developper un mailing, voir réponse plus bas :

    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
    <?php
    $merci = $_GET['merci'];
    $email = $_GET['email'];
    $TO = "echo '$email';direction@toto.fr";
    $h  = "From: direction@toto.fr" . $TO;
    $message = "";
    while (list($key, $val) = each($HTTP_POST_VARS)) {
      $message .= "$key : $val\n";
    }
    mail($TO, $subject, $message, $h);
    echo "'$merci'"
    ?>
    <div align=center>
    <form method=POST action=mail.php?merci=merci >
    <input type=hidden name=subject value=formmail>
    <table>
    <tr><td>Votre Nom:</td>
        <td><input type=text name=realname size=30></td></tr>
    <tr><td>Email-client:</td>
        <td><input type=text name=email size=30></td></tr>
    <tr><td>Sujet:</td>
        <td><input type=text name=title size=30></td></tr>
    <tr><td colspan=2>Commentaires:<br>
      <textarea COLS=50 ROWS=6 name=comments></textarea>
    </td></tr>
    </table>
    <br> <input type=submit value=Envoyer>
    </form>
    </div>
    De plus j'essaie de faire en sorte qu'aprés avoir cliqué sur submit, n'apparaissent plus les imput, j'avais pour cela écris un code, mais la aussi ca ne marche pas.

    Je précise que mon hebergeur accepte la fonction mail() et qu'il est payant.

    Merci a tous pour votre sympathie.

  2. #2
    Rédacteur
    Avatar de Yoshio
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 732
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 732
    Par défaut
    Pourquoi utilise-tu $HTTP_POST_VARS ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $TO = "echo '$email';direction@toto.fr";
    Il fait quoi la ?!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    while (list($key, $val) = each($HTTP_POST_VARS)) {
      $message .= "$key : $val\n";
    }
    Es-tu sûre que $_POST ne contient que 2 éléments ?!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mail($TO, $subject, $message, $h);
    $TO n'a pas le bon format, où est $subject ?!

    Il te manque tout les "..." dans ton code HTML

    PB = Pc Banking ?!

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 653
    Par défaut
    J'ai modifié mon programme car en fait je n'avais pas enleve des syntaxe pour d'autres fonctions :

    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
    <?php
    $merci = $_GET['merci'];
    $email = $_GET['email'];
    $TO = "'$email';direction@toto.fr";
    $h  = "From: direction@toto.fr" . $TO;
    $message = "";
    mail($TO, $subject, $message, $h);
    echo "'$merci'"
    ?>
     
    <div align=center>
    <form method=POST action=mail.php?merci=merci >
    <input type=hidden name=subject value=formmail>
    <table>
    <tr><td>Votre Nom:</td>
        <td><input type=text name=realname size=30></td></tr>
    <tr><td>Email-client:</td>
        <td><input type=text name=email size=30></td></tr>
    <tr><td>Sujet:</td>
        <td><input type=text name=title size=30></td></tr>
    <tr><td colspan=2>Commentaires:<br>
      <textarea COLS=50 ROWS=6 name=comments></textarea>
    </td></tr>
    </table>
    <br> <input type=submit value=Envoyer>
    </form>
    </div>
    Mais le probleme doit etre ailleur a mon avis.

    En fait ce que je cherche a faire tout simplement c'est de pouvoir envoyer un mail a une personne ou plusieurs (en fonction d'une BDD), dont l'adresse ne serait pas déja prédéfinie.

    Donc je veux simplement envoyer un mail en saisissant l"adresse du destinataire.

    Ensuite je verrais pour envoyer a plusieurs selon ma BDD mais j'ai le meme PB :



    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
    <?php
    $db = mysql_connect("","","") or mysql_die("Connexion impossible");
    mysql_select_db("dossiers",$db);
    $requete= "SELECT  * FROM nomtables WHERE NOM ='TEST'";
    $res=mysql_query ($requete,$db) or mysql_die(mysql_error()); 
    while($candit = mysql_fetch_object($res))
    { 
    $d_Email[]=$candit->email;
    } 
    $nb=count($res);
    echo $nb;
    for($i=0;$i<count($d_Email);$i++){ 
    //$d_Email[$i]
    $Email="$d_Email[$i]";
    echo "$Email;";
    //email
    // on déclare les paramètres du mail 
     
    $expediteur = "toto.fr"; 
    $objet = "Votre demande"; 
    $contenu = "
    Contenu du mail <br> code html";
     
    mail($Email, $objet,$contenu, "From: $expediteur\r\nReply-To: $expediteur\r\nContent-Type: text/html; charset=\"iso-8859-1\"\r\n");
    //mail("direction@toto.fr", $objet,$contenu, "From: $expediteur\r\nReply-To: $expediteur\r\nContent-Type: text/html; charset=\"iso-8859-1\"\r\n");
     
    }
    //echo $contenu;
    mysql_close();
    ?>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <title>balbla</title>
     
    <head>
     
    </head>
     
    <html><head>
    <meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'>
     
    <title></title>
    </head>
     
    <body>
    <p>Titre:--- blabla<br>
      Adresse d'envoi:direction@toto.fr<br>
      <br>
    </p>
    <div align='center'><? echo "contenu du mail : <br>".$contenu; ?> </div>
    </body></html>
     
    <br>
     </center></body></html> 
    </body>
    </html>

    BREF je m'en sors ni pour l'un ni pour l'autre, a l'aide.......j'ys suis depuis 11H non stop

  4. #4
    Rédacteur
    Avatar de Yoshio
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 732
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 732
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $Email="$d_Email[$i]";
    echo "$Email;";
    Pourquoi des "..." la ?

    La ligne en verte est d'un syntaxe a éviter ...

    Ta fonction mail() n'a plus l'air d'avoir d'erreur. Vérifie plutot ton code avant (dans le 2ème code)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $requete= "SELECT  * FROM nomtables WHERE NOM ='TEST'";
    Il est en majuscule dans ta db ?!

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 653
    Par défaut
    merci je dois partir mais je verifierais ce soir et je vous tiendrais informé, merci deja en tout cas

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Août 2006
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 11
    Par défaut
    Juste pour tester, tu pourrais essayer de mettre des "\n" à la place des "\r\n" dans le quatrième argument de la fonction mail. Je sais que normalement ce sont des \r\n qu'il faut mettre mais j'ai réussi à mé débloquer un script d'envoi de mails au format MIME en mettant des \n.

    Essaie peut être aussi de mettre des "," entre les adresses mails des destinataires au lieu des ";". On ne sait jamais ... Dans ces cas là, j'ai pour habitude de tout tester.

    Et dans ton header, tu n'as pas mis le header "MIME-Version: 1.0"

  7. #7
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Par défaut
    @fhorse : NON, il FAUT utiliser ce qui est recommandé, à savoir \n\r ! En particulier à la fin des headers, il faut mettre \n\r\n\r si tu ne veux pas t'exposer à une faille connue comme le loup blanc !

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

Discussions similaires

  1. [MySQL] Formulaire PHP ->MySQL
    Par shub dans le forum PHP & Base de données
    Réponses: 14
    Dernier message: 09/02/2010, 23h42
  2. Formulaires ? PHP ou HTML ?
    Par ghyosmik dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 15/11/2005, 11h22
  3. Nom d'un Formulaire Php
    Par etiennegaloup dans le forum Langage
    Réponses: 2
    Dernier message: 03/11/2005, 22h55
  4. Formulaire PHP+ envoi de fichier joint
    Par GraphicProvider dans le forum Langage
    Réponses: 2
    Dernier message: 29/10/2005, 19h12
  5. [MySQL] Formulaire php + bdd = perte des sauts de ligne html ?
    Par sunshine33 dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 03/10/2005, 12h19

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