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 :

Formulaire d'envoi de mail chez Free et vérification


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 13
    Points : 9
    Points
    9
    Par défaut Formulaire d'envoi de mail chez Free et vérification
    Bonjour,

    Ne connaissant pas grand chose à PHP (jusque là je ne m'en servait que pour faire des include ), je me permet de vous demander un peu d'aide...

    Je cherche à faire une vérification des champs remplis dans mon formulaire de mail...
    Mon site est hébergé chez Free, mon code utilisé pour le formulaire est le suivant (trouvé sur le site de free) :

    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
     
        <form method="post" action="http://perso0.free.fr/cgi-bin/form2mail.pl">  <!-- le truc spécifié par Free --> 
     
        <p> 
          <label for="email_expediteur">Votre adresse e-mail :</label><br /> 
          <input type="text" size="40" name="email_expediteur" id="email_expediteur" accesskey="e" value="Entrez votre adresse e-mail ici"/> 
        </p> 
     
        <p> 
          <label for="titre">Titre de message :</label><br /> 
          <input type="text" size="40" name="titre" id="titre" accesskey="t" value="Entrez le titre de votre message ici"/>      
        </p> 
     
        <p> 
          <label for="message">Message :</label><br /> 
          <textarea name="message" id="message" accesskey="m" cols="40" rows="5">Entrez votre message ici</textarea>    
        </p> 
     
        <p> 
          <input type="submit" name="envoyer" accesskey="s" value="Envoyer" /> 
        </p> 
     
      </form>

    Après moult recherches, j'ai l'impression qu'il faurait faire quelquechose du genre

    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
     
    if (isset($_POST["envoyer"]))// le formulaire a été soumis 
       { 
        if (empty($_POST["email_expediteur"]))   // il manque l'email de l'expéditeur 
          {  
          echo "Saisissez votre adresse email..."; 
          } 
        elseif (!eregi("^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\.[a-z]{2,4}$",$_POST["email_expediteur"]))   // l'adresse e-mail n'est pas valide 
          {  
           echo "Votre adresse e-mail n'est pas valide..."; 
          } 
        elseif (empty($_POST["message"]))  // le message est vide 
          {  
          echo "Saisissez un message..."; 
          } 
      }
    Seulement, vu que je suis une quiche en php, évidement, cela ne fonctionne pas, et mes nombreuses bidouilles n'y changent rien...

    Pourriez vous éclairer ma lanterne ?

    Merci beaucoup

    Pyro

  2. #2
    Membre averti Avatar de BornBanane
    Homme Profil pro
    dev
    Inscrit en
    Mars 2007
    Messages
    284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : dev

    Informations forums :
    Inscription : Mars 2007
    Messages : 284
    Points : 416
    Points
    416
    Par défaut
    Et je vais te rassurer de suite le probleme ne vient pas de ton code. Car il m'a l'air correcte, mais quand tu regarde le début de ton formulaire tu as :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <form method="post" action="http://perso0.free.fr/cgi-bin/form2mail.pl">
    Ce qui veut dire que une fois que tu auras appuyé sur le bouton d'envoie du formulaire les infos seront envoyé à la page form2mail.pl, or je ne pense pas que la page sur laquelle tu as mis ton formulaire soit la page form2mail.pl, qui doit etre un script de free pour l'envoie d'email.
    Donc ton 2eme bout de code ne se déclenche jamais.

  3. #3
    Membre du Club
    Inscrit en
    Mars 2007
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 53
    Points : 54
    Points
    54
    Par défaut
    De plus je ne suis pas sure mais je crois de souvenir que envoyer un mail via l ' hébergeur Free c'est tout une galère

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 13
    Points : 9
    Points
    9
    Par défaut
    Citation Envoyé par francoisIT
    Donc ton 2eme bout de code ne se déclenche jamais.
    Ok, tout d'un coup je comprend mieux pourquoi cela ne fonctionnait pas...
    Je ne peux rien faire pour vérifier les entrées du formulaire alors ? (à part peut-être une vérification en javascript, mais je ne m'y connaît pas plus en JS qu'en PHP, et puis le problème de javascript, c'est quandil est désactivé chez l'utilisateur...)

    Citation Envoyé par ste06
    je crois de souvenir que envoyer un mail via l ' hébergeur Free c'est tout une galère
    Oui, effectivement... si j'ai bien compris, la seule méthode possible est celle que j'emploie (form2mail, et ce qui va avec)...

  5. #5
    Membre du Club
    Inscrit en
    Mars 2007
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 53
    Points : 54
    Points
    54
    Par défaut
    Attend tes deux morceaux de code sont bien sur la meme page ???
    si oui il te suffit de faire cela pour verifier la validité de tes champs

    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
     
    <form method="post" action="taPage.php">  <!-- le truc spécifié par Free --> 
     
        <p> 
          <label for="email_expediteur">Votre adresse e-mail :</label><br /> 
          <input type="text" size="40" name="email_expediteur" id="email_expediteur" accesskey="e" value="Entrez votre adresse e-mail ici"/> 
        </p> 
     
        <p> 
          <label for="titre">Titre de message :</label><br /> 
          <input type="text" size="40" name="titre" id="titre" accesskey="t" value="Entrez le titre de votre message ici"/>      
        </p> 
     
        <p> 
          <label for="message">Message :</label><br /> 
          <textarea name="message" id="message" accesskey="m" cols="40" rows="5">Entrez votre message ici</textarea>    
        </p> 
     
        <p> 
          <input type="submit" name="envoyer" accesskey="s" value="Envoyer" /> 
        </p> 
     
      </form>

    et ensuite tu peux verifier comme cela

    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
     
    <?php
    if (isset($_POST["envoyer"]))// le formulaire a été soumis 
       { 
        if (empty($_POST["email_expediteur"]))   // il manque l'email de l'expéditeur 
          {  
          echo "Saisissez votre adresse email..."; 
          } 
        elseif (!eregi("^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\.[a-z]{2,4}$",$_POST["email_expediteur"]))   // l'adresse e-mail n'est pas valide 
          {  
           echo "Votre adresse e-mail n'est pas valide..."; 
          } 
        elseif (empty($_POST["message"]))  // le message est vide 
          {  
          echo "Saisissez un message..."; 
          } 
      } 
    ?>

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 13
    Points : 9
    Points
    9
    Par défaut
    Oui, les deux morceaux sont (étaient) dans la même page...

    Mais ce que je ne comprend pas dans ta réponse, c'est que si je modifie l' "action" du form et enleve le "blablabla.form2mail", le mail ne partira jamais, si ? (je dis peut-être une grosse bêtise, je ne sais pas )

    En tout cas, merci de vous pencher sur mon problème !

  7. #7
    Membre averti Avatar de BornBanane
    Homme Profil pro
    dev
    Inscrit en
    Mars 2007
    Messages
    284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : dev

    Informations forums :
    Inscription : Mars 2007
    Messages : 284
    Points : 416
    Points
    416
    Par défaut
    Sinon tu garde ton formulaire comme tu l'as fait mais en mettant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <form method="post" action="taPage.php">
    Puis lorsque le formulaire est validé tu fais ta vérification :

    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
    if (isset($_POST["envoyer"]))// le formulaire a été soumis 
       {
        $ok = 0;
        if (empty($_POST["email_expediteur"]))   // il manque l'email de l'expéditeur 
          {  
         $ok = 1;
          } 
         else $ok=0;
        if (!eregi("^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\.[a-z]{2,4}$",$_POST["email_expediteur"]))   // l'adresse e-mail n'est pas valide 
          {  
           $ok = 1;
          } 
         else $ok=0;
        if (empty($_POST["message"]))  // le message est vide 
          {  
          $ok = 1;
          } 
         else $ok=0; 
    
        if ( $ok == 1 )
       {
         echo '<form method="post" name="formulairefree" action="http://perso0.free.fr/cgi-bin/form2mail.pl"> ';
         echo ' .... ' // mettre les champs sous forme de <input type="hidden" ...>
                        // en utilisant les même nom et en leur donnant les valeurs des champs saisis
                       // ex : echo  '<input type="hidden" name="email_expediteur" value="'.$_POST['email_expediteur'].'">';
         echo '</form> ';
         // ensuite il faut envoyer le formulaire dès sa création
       echo '<script type="text/javascript"> document.forms["formulairefree"].submit();   </script>';
    
    
        }
      }

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 13
    Points : 9
    Points
    9
    Par défaut Ca focntionne !
    Merci beaucoup pour ton aide...

    Après quelques bidouilles, ça focntionne parfaitement (enfin je crois bien )

    Pour info au cas où quelqu'un rencontre le même problème que moi, voici mon code complet :

    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
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
     
    <?php
    if (isset($_POST["envoyer"]))// le formulaire a été soumis 
       {
        $ok = 1;
        // --- mise en forme des champs saisis dans le formulaire lors de sa soumission ---
        if (isset($_POST["email_expediteur"])) 
          {
          $_POST["email_expediteur"]=trim(stripslashes($_POST["email_expediteur"]));
          }
        if (isset($_POST["titre"])) 
          {
          $_POST["titre"]=trim(stripslashes($_POST["titre"]));
          }
        if (isset($_POST["message"])) 
          {
          $_POST["message"]=trim(stripslashes($_POST["message"]));
          }
        // --- test de la validité des champs saisis ---
        if (empty($_POST["email_expediteur"]))   // il manque l'email de l'expéditeur 
          {       
         echo "<p><strong>Saisissez votre adresse email...</strong></p>";
          } 
        elseif (!eregi("^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\.[a-z]{2,4}$",$_POST["email_expediteur"]))   // l'adresse e-mail n'est pas valide 
            {  
              echo "<p><strong>Votre adresse e-mail n'est pas valide...</strong></p>";
            }
        elseif (empty($_POST["message"]))  // le message est vide 
             {        
               echo "<p><strong>Saisissez un message...</strong></p>";
             } 
         else $ok=0;
     
     
      if ( $ok == 0 )
       {
         echo '<form method="post" name="formulairefree" action="http://perso0.free.fr/cgi-bin/form2mail.pl"> ';
               // mettre les champs sous forme de <input type="hidden" ...>
               // en utilisant les même nom et en leur donnant les valeurs des champs saisis
               // ex : echo  '<input type="hidden" name="email_expediteur" value="'.$_POST['email_expediteur'].'">';
         echo  '<input type="hidden" name="email_expediteur" value="'.$_POST['email_expediteur'].'">';
         echo  '<input type="hidden" name="titre" value="'.$_POST['titre'].'">';
         echo  '<input type="hidden" name="message" value="'.$_POST['message'].'">';
         echo '</form> ';
         // ensuite il faut envoyer le formulaire dès sa création
       echo '<script type="text/javascript"> document.forms["formulairefree"].submit();   </script>';
        }
     
      }
    ?>
     
     
    <!-- ____________________formulaire____________________ -->
     
     
     
        <form method="post" action="adresse_de_ma_page_de_contact"> 
     
        <p>
          <label for="email_expediteur">Votre adresse e-mail :</label><br />
          <input type="text" size="40" name="email_expediteur" id="email_expediteur" accesskey="e" value=
            "<?php
             if (!empty($_POST["email_expediteur"]))   // l'adresse email de l'expéditeur a été saisie: la réafficher
                { 
                echo htmlspecialchars($_POST["email_expediteur"],ENT_QUOTES);
                }
            ?>" 
          />
        </p>
     
        <p>
          <label for="titre">Titre de message :</label><br />
          <input type="text" size="40" name="titre" id="titre" accesskey="t" value=        
          "<?php
              if (!empty($_POST["titre"]))   // le titre du message a été saisi: le réafficher
                {
                echo htmlspecialchars($_POST["titre"],ENT_QUOTES);
                }
            ?>" />
     
        </p>
     
        <p>
          <label for="message">Message :</label><br />
          <textarea name="message" id="message" accesskey="m" cols="40" rows="5">
            <?php
              if (isset($_POST["message"]))  // le message a été saisi: le réafficher
                { 
                echo htmlspecialchars($_POST["message"],ENT_QUOTES);
                }
            ?>      
          </textarea>
     
        </p>
     
        <p>
          <input type="submit" name="envoyer" accesskey="s" value="Envoyer" />
        </p>
     
      </form>
     
    <!-- ____________________fin formulaire____________________ -->
    Voilà tout...

    Encore merci !

    Pierre

  9. #9
    Candidat au Club
    Inscrit en
    Octobre 2004
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Heuuu
    Salut, je suis chez Free aussi, et je me demandais ce qu'il faut changer dans ton script final pour l'adapter a mon site? A la place de "adresse_de_ma_page_de_contact" il faut mettre quoi? Une adresse mail?

    J'aimerai que le résultat du formulaire me soit envoyé sur une boite hotmail et pas sur la boite Free : c'est possible avec ton script?

    Voila, si tu peux me repondre ca serait cool, ca fait des jours que j'me prends la tete a essayer d'trouver une solution...

    Niko

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

Discussions similaires

  1. [MySQL] Réinitialisation envoi de mail chez FREE
    Par Judgelolo dans le forum PHP & Base de données
    Réponses: 0
    Dernier message: 23/07/2012, 11h34
  2. prob avec mon formulaire d'envoi de mail
    Par zorba49 dans le forum ASP
    Réponses: 12
    Dernier message: 06/02/2007, 11h52
  3. Réponses: 11
    Dernier message: 10/07/2006, 16h17
  4. [Mail] mail() chez free ??
    Par nerick dans le forum Langage
    Réponses: 6
    Dernier message: 10/05/2006, 14h12
  5. [Debutant]Formulaire d'envoie de mail
    Par Wyatt dans le forum Balisage (X)HTML et validation W3C
    Réponses: 7
    Dernier message: 31/01/2005, 21h04

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