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

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

    Informations forums :
    Inscription : Novembre 2005
    Messages : 653
    Points : 183
    Points
    183
    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 : 36
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 732
    Points : 2 853
    Points
    2 853
    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 habitué
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 653
    Points : 183
    Points
    183
    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 : 36
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 732
    Points : 2 853
    Points
    2 853
    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 habitué
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    653
    Détails du profil
    Informations personnelles :
    Localisation : France

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

  6. #6
    Futur Membre du Club
    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
    Points : 8
    Points
    8
    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
    Points : 29 985
    Points
    29 985
    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 !

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

    Informations forums :
    Inscription : Novembre 2005
    Messages : 653
    Points : 183
    Points
    183
    Par défaut
    Je ne comprends pas, cela ne fonctionne toujours pas

    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
    <?php
    $merci = $_GET['merci'];
    $email = $_GET['email'];
    $TO = "echo '$email'";
    $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=mail>
    <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>

  9. #9
    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
    Points : 29 985
    Points
    29 985
    Par défaut
    Je vais y aller de mes suppositions, puisque tu ne donnes aucune information pour t'aider (nous avons besoin de savoir ce qui ne fonctionne pas) :/

    mysql_connect("","","")
    ==> Ici, il faut renseigner les paramètres, sans quoi ça ne fonctionnera jamais. Lis la doc de la fonction pour savoir que mettre.

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

    Informations forums :
    Inscription : Novembre 2005
    Messages : 653
    Points : 183
    Points
    183
    Par défaut
    Je vais essayer de donner toutes les infos possibles.

    D'abord concernant le premier code, qui permet d'envoyer un mail a une personne, je n'ai pas besoin de mettre les infos de connexion a SQL.

    Aprés je reviendrais sur le second code, mais pour l'instant le premier ne fonctionne pas..

    C'est sympa de m'aider en tout cas

    ------------------------

    Pour vous iader a m'aider

    Je viens de créer une table TEST

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     <? 
    $server = "mysql.axs-fr.net"; 
    $user = "test1";
    $password = "test1"; 
    $base = "LISTE"; 
    mysql_connect($server,$user,$password); 
    mysql_select_db($base);
    ?>
    SEXE EMAIL MEMBRE
    F un'@'test.fr OUI
    F deux'@'test.fr OUI
    M trois'@'test.fr OUI
    F quatre'@'test.fr NON

    1 - imaginons que je souhaite pouvoir avoir un script php qui me propose d'envoyer un email manuellement vers quelqu'un
    2 - imaginons que je souhaite envoyer un mailing a toutes les personnes de SEXE F et qui sont MEMBRE

    Voila pour etre simple......................

    Merci vraiment sincérement de votre aide

  11. #11
    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
    Points : 29 985
    Points
    29 985
    Par défaut
    Tu gères mal le retour du formulaire. Consulte les tutoriels pour plus d'informations (je déteste me répéter :/) : Les formulaires et PHP

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

    Informations forums :
    Inscription : Novembre 2005
    Messages : 653
    Points : 183
    Points
    183
    Par défaut
    Je te remercie YOGUI et je te respecte car tu es sur ce forum une source d'informations de générosité de temps , etc...

    Mais je ne trouve pas ta réponse trés trés sympa aujourd'hui, car penses tu que je n'ai pas déja lu des tuto pour essayer d'écrire un prog de ce type.
    Donc si tu vois un PB particulier, une erruer de syntaxe quelques part, cela serait plus sympa d'avir la gentillesse de me le dire plutot que de me renvoyer vers les tuto

    Meme quelqu'un qui relis les tuto peut tout a fait passer a coté de quelques choses qui ne lui saute pas aux yeux et c'est actuellement mon cas.

    Donc pas cool, mais bon tu es responsable PHP, donc ton role est de nous renvoyer vers les tuto........

    Merci quand meme a tous ceux qui m'auront aidé...

  13. #13
    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
    Points : 29 985
    Points
    29 985
    Par défaut
    • Ton HTML n'est pas syntaxiquement correct, il manque des guillemets (ou des apostrophes, au choix) et il faut tout écrire en minuscules.
    • Tes noms de variables PHP ne sont pas harmonisés, ce qui te posera des problèmes un jour ou l'autre : choisis une langue, ne mélange pas français et anglais et ne mélange pas lettres capitales et lettres minuscules.
    • Tu n'as pas tenu compte de toutes les remarques de Yoshio : que fait echo dans une chaîne ?
    • Tu ne protèges pas (et c'est là qu'intervient mon tuto) la récupération du formulaire à l'aide de !empty()

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

    Informations forums :
    Inscription : Novembre 2005
    Messages : 653
    Points : 183
    Points
    183
    Par défaut
    Je te remercie sincérement.

    Je rajouterai que ce script fonctionnait trés bien dans l'état il y a quelques jours, mais il ne fonctionne plus pour des raisons qui m'echappent, mais tes observation, que j'attendais, sont trés trés précieuses et je t'en remercie, car au dela de ce script cela montre que je dois repartir de zeron pour certaines choses, d'ou les tutos, je comprends mieux......

    Trés bonne soirée a toi et au forum, je me debrouillerai autrement en prenant en compte les tutos et tous les avis précieux........

    Bonne soirée

+ 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, 22h42
  2. Formulaires ? PHP ou HTML ?
    Par ghyosmik dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 15/11/2005, 10h22
  3. Nom d'un Formulaire Php
    Par etiennegaloup dans le forum Langage
    Réponses: 2
    Dernier message: 03/11/2005, 21h55
  4. Formulaire PHP+ envoi de fichier joint
    Par GraphicProvider dans le forum Langage
    Réponses: 2
    Dernier message: 29/10/2005, 18h12
  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, 11h19

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