Précédent   Forum des professionnels en informatique > PHP > Langage > Formulaires
Formulaires Forum d'entraide sur les formulaires avec PHP. Avant de poster -> FAQ formulaires, Cours de formulaires et Sources de formulaires
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 10/07/2007, 14h38   #1
Invité régulier
 
Inscription : juin 2006
Messages : 13
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 13
Points : 5
Points : 5
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 :
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 :
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
Horse_pyro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/07/2007, 15h11   #2
Membre éclairé
 
Avatar de BornBanane
 
Homme
Ingénieur développement logiciels
Inscription : mars 2007
Messages : 274
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Hauts de Seine (Île de France)

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : mars 2007
Messages : 274
Points : 350
Points : 350
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 :
<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.
BornBanane est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/07/2007, 15h16   #3
Membre du Club
 
Inscription : mars 2007
Messages : 53
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 53
Points : 47
Points : 47
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
ste06 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/07/2007, 15h31   #4
Invité régulier
 
Inscription : juin 2006
Messages : 13
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 13
Points : 5
Points : 5
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)...
Horse_pyro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/07/2007, 15h45   #5
Membre du Club
 
Inscription : mars 2007
Messages : 53
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 53
Points : 47
Points : 47
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 :
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 :
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..."; 
      } 
  } 
?>
ste06 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/07/2007, 16h05   #6
Invité régulier
 
Inscription : juin 2006
Messages : 13
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 13
Points : 5
Points : 5
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 !
Horse_pyro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/07/2007, 10h07   #7
Membre éclairé
 
Avatar de BornBanane
 
Homme
Ingénieur développement logiciels
Inscription : mars 2007
Messages : 274
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Hauts de Seine (Île de France)

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : mars 2007
Messages : 274
Points : 350
Points : 350
Sinon tu garde ton formulaire comme tu l'as fait mais en mettant

Code :
<form method="post" action="taPage.php">
Puis lorsque le formulaire est validé tu fais ta vérification :

Code :
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>';


    }
  }
BornBanane est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/07/2007, 11h35   #8
Invité régulier
 
Inscription : juin 2006
Messages : 13
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 13
Points : 5
Points : 5
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 :
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
Horse_pyro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/05/2008, 01h44   #9
Invité de passage
 
Inscription : octobre 2004
Messages : 2
Détails du profil
Informations forums :
Inscription : octobre 2004
Messages : 2
Points : 1
Points : 1
Envoyer un message via MSN à Niko92
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
Niko92 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h29.


 
 
 
 
Partenaires

Hébergement Web