Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2246 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Problème avec formulaire php - HELP!

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Problème avec formulaire php - HELP!

n°2160785
lex9
Posté le 19-10-2012 à 14:42:38  profilanswer
 

Bonjour à tous,
Je me lance dans la création de mon premier site internet...
J'utilise Dreamweaver.
Je rencontre des difficultés dans la création d'un formulaire de contact.
En effet, je souhaite transmettre par e-mail, les données saisies par l'utilisateur via un script php.
 
J'ai réalisé celui-ci mais je ne reçois pas les infos par mail... et ne trouve pas le bug... je fais mes tests via un serveur free-h.org qui prend en charge le PHP...
 
Est-ce que vous voyez ce qui ne va pas... ?
 
Je suis débutante, donc le code est loin d'être optimisé et "propre"...
 
Merci par avance...
 
Voici mon code php :
<?php
 
$name = $_POST['name'];
$prenom = $_POST['prenom'];
$visitor_tel = $_POST['tel'];
$visitor_email = $_POST['email'];
$message = $_POST['message'];
 
 
$email_from = 'lmenand@hotmail.com';
$email_subject = "Formulaire de contact";
$email_body = "Vous avez reçu un nouveau message de Mr ou Mme $name. \n".
     "Voici le message : \n $message".
   
$to = "monadressemail@hotmail.com";
$headers = "From: $email_from \r\n";
 
 
/*$headers .="Reply-To: $visitor_email \r\n";*/
 
@mail($to,$email_subject,$email_body,$headers);
 
header('Location: merci.html');
 
 
?>  
 
 
Code html du formulaire (pour la saisie des données) :
   
    <form id="form1" name="form1" action="email_form2.php" method="post"ENCTYPE="text/plain" >
      <table width="94%" height="440" border="0" align="center">
       
       
        <tr>
          <td width="19%">Nom*</td>
          <td width="40%"><span id="sprytextfield1">
            <label for="name"></label>
            <input type="text" name="name" id="name" size="30" tabindex="1"/>
 
            <span class="textfieldRequiredMsg"><span style="font-size: 60%;"><br />
 
Veuillez indiquer votre nom</span></span></span></span> <br /></td>
          <td width="41%" rowspan="6" align="center" valign="top"; text-align: center;">
          <dl>
          <dt><span style="margin-top: 0px;">
       
          </td>
         
          <td>Prénom</td>
          <td><input name="prenom" type="text" id="prenom" size="30" tabindex="2"/></td>
        </tr>
         
        <tr>
         
          <td>Téléphone*</td>
          <td><span id="sprytextfield3" onfocus="MM_validateForm('name','','R','tel','','RisNum','email','','RisEmail','message','','R');return document.MM_returnValue">
          <input name="tel" type="text" id="tel" size="30" tabindex="3"/>
          <span class="textfieldRequiredMsg">Une valeur est requise.</span><span class="textfieldInvalidFormatMsg">Format non valide.</span></span><span class="textfieldRequiredMsg">
  <span style="font-size: 60%;">Précisez votre numéro de téléphone</span></span><span class="textfieldInvalidFormatMsg"><span style="font-size: 60%;">Format non valide</span></span></td>
        </tr>
         
         
         
        <tr>
          <td>e-mail*</td>
          <td><span id="sprytextfield2">
          <input name="email" type="text" id="email" size="30" tabindex="4"/>
           
          <span class="textfieldRequiredMsg">
           
          <span style="font-size: 60%;">Précisez votre e-mail</span></span><span class="textfieldInvalidFormatMsg"><span style="font-size: 60%;">Format non valide</span></span></span></td>
        </tr>
        <tr>
          <td height="51">Votre message*</td>
          <td><span id="sprytextarea1">
            <textarea name="message" cols="40" rows="10" id="message" tabindex="5"></textarea>
          <span class="textareaRequiredMsg"><span style="color: #96F; font-size: 60%;">Rédigez votre message</span></span></span></td>
        </tr>
        <tr>
          <td height="54"><span style="vertical-align: top; text-align: center; font-size: 50%;">*: champs obligatoires</span></td>
          <td><input name="button" type="submit" id="button" onclick="MM_validateForm('name','','R','tel','','R','email','','RisEmail','message','','R');return document.MM_returnValue" value="Envoyer" tabindex="6"/></td>
        </tr>
      </table>
    </form>

mood
Publicité
Posté le 19-10-2012 à 14:42:38  profilanswer
 

n°2160865
NewsletTux
&lt;Insérez ici votre vie /&gt;
Posté le 21-10-2012 à 11:27:32  profilanswer
 

Salut
Il y aura un petit souci de sécurité à gérer sur ton formulaire, mais on verra ça après.

 

Tout d'abord, retire l'@ devant la fonction mail : c'est une mauvaise idée en test de vouloir masquer les erreurs.

 

Option 1) tu testes tel quel et c'est justement la fonction mail qui renvoie une erreur
Bin fait voir laquelle !  :spamafote:

 

Option 2) mail ne renvoie pas d'erreur
Alors déjà il faut tester tes variables, faire un echo $nom puis echo $message, etc. Afin de voir si tout est bien récupéré.

 

Tu n'as rien dans les spams, et ton hébergeur n'a pas de restriction sur cette fonction ?

 

A toi la suite...


---------------
NewsletTux - outil de mailing list en PHP MySQL
n°2160866
NewsletTux
&lt;Insérez ici votre vie /&gt;
Posté le 21-10-2012 à 11:28:58  profilanswer
 

Salut
Il y aura un petit souci de sécurité à gérer sur ton formulaire, mais on verra ça après.

 

Tout d'abord, retire l'@ devant la fonction mail : c'est une mauvaise idée en test de vouloir masquer les erreurs.

 

Option 1) tu testes tel quel et c'est justement la fonction mail qui renvoie une erreur
Bin fait voir laquelle !  :spamafote:

 

Option 2) mail ne renvoie pas d'erreur
Alors déjà il faut tester tes variables, faire un echo $nom puis echo $message, etc. Afin de voir si tout est bien récupéré.

 

Tu n'as rien dans les spams, et ton hébergeur n'a pas de restriction sur cette fonction ?

 

A toi la suite...


---------------
NewsletTux - outil de mailing list en PHP MySQL
n°2160868
CyberDenix
Posté le 21-10-2012 à 11:56:51  profilanswer
 

Juste après <?php
 
ecris ces deux lignes :
 
ini_set('error_reporting', 'E_ALL | E_STRICT');
ini_set('display_errors', true);
 
Pour être certaine d'afficher les erreurs


---------------
Directeur Technique (CTO)
n°2160870
lex9
Posté le 21-10-2012 à 12:38:54  profilanswer
 

Bonjour et merci pour ton aide !
Je n'ai en effet pas de message d'erreur. Je ne recevais tout simplement pas d'email comprenant les informations saisies par l'utilisateur...
J'ai vérifié, mon hébergeur gère bien le php et la fonction mail().
 
 
J'ai, avant de recevoir ta réponse, refait mon code php (voir ci dessous), je n'ai pas changé la partie html de saisie du formualire:  
<?php
$to= "xxxxx@yyy.com";
$subject= "Formulaire de contact";
$message= "NOM:       " .$_POST['name'] . "\r\n" .
"PRENOM:    " .$_POST['prenom'] . "\r\n" .
"TELEPHONE: " .$_POST['tel'] . "\r\n" .
"E-mail:    " .$_POST['email'] . "\r\n" .
"MESSAGE:   " .$_POST['message'];
$from=$_POST['email'];
$headers="De: $email"."\r\n";
$headers.="Bcc: info_www@zzzzzz.net"."\r\n";
mail($to,$subject,$message,$headers);
?>
 
Je reçois maintenant un mail mais les variables 'name', 'prenom', etc ne sont pas renseignées...
Je vais essayer de tester les variables avec la fonction echo comme suggéré. Je te tiens au courant... je dois faire un peu de recherche car jamais utilisé cette fonction...
 
A suivre...
 

n°2160871
lex9
Posté le 21-10-2012 à 12:45:55  profilanswer
 

CyberDenix a écrit :

Juste après <?php
 
ecris ces deux lignes :
 
ini_set('error_reporting', 'E_ALL | E_STRICT');
ini_set('display_errors', true);
 
Pour être certaine d'afficher les erreurs


 
Bonjour et merci pour votre aide !
J'ai rajouté à mon nouveau code php les 2 lignes ci dessus ini_set etc... je n'ai pas de message d'erreur.
J'ai maintenant "juste" un pbl de variables non transmises via mon script php...
 
A suivre,
je cherche les raisons...

n°2160873
lex9
Posté le 21-10-2012 à 14:25:06  profilanswer
 

NewsletTux a écrit :

Salut
Il y aura un petit souci de sécurité à gérer sur ton formulaire, mais on verra ça après.
 
Tout d'abord, retire l'@ devant la fonction mail : c'est une mauvaise idée en test de vouloir masquer les erreurs.
 
Option 1) tu testes tel quel et c'est justement la fonction mail qui renvoie une erreur
Bin fait voir laquelle !  :spamafote:  
 
Option 2) mail ne renvoie pas d'erreur
Alors déjà il faut tester tes variables, faire un echo $nom puis echo $message, etc. Afin de voir si tout est bien récupéré.
 
Tu n'as rien dans les spams, et ton hébergeur n'a pas de restriction sur cette fonction ?
 
A toi la suite...


 
Re-bonjour,
 
J'ai donc fait un echo de mes variables (sur mon nouveau code php : celui qui m'envoie un mail mais sans le résultat des variables) : mes variables ne sont pas récupérées... :??:

n°2160877
CyberDenix
Posté le 21-10-2012 à 15:32:52  profilanswer
 

Faut voir si ton formulaire est en get ou en post :
 
<form ... method=post>
 
Tu dois utiliset $_POST
 
 
<form ... method=get>
 
tu dois utiliser $_GET
 
 
 
Sinon tu peux utiliser $_REQUEST, qui gère les deux.


---------------
Directeur Technique (CTO)
n°2160878
lex9
Posté le 21-10-2012 à 15:53:42  profilanswer
 

CyberDenix a écrit :

Faut voir si ton formulaire est en get ou en post :
 
<form ... method=post>
 
Tu dois utiliset $_POST
 
 
<form ... method=get>
 
tu dois utiliser $_GET
 
 
 
Sinon tu peux utiliser $_REQUEST, qui gère les deux.


 
Je suis en POST. Suis en train d'épurer mon formulaire pour repartir d'un formulaire basic.  
en effet, je viens de refaire un essai, et comme par hasard, seul le champ nom obligatoire (prénom) est transmis... Une fois que j'aurai des variables transmises, je remettrai ensuite des validations de format (mail, tel, etc...) on dirait que le pbl est à ce niveau... j'ai dû faire des erreurs de syntaxes qui polluent le "truc"... te tiens informé...

n°2160881
lex9
Posté le 21-10-2012 à 16:11:53  profilanswer
 

CyberDenix a écrit :

Faut voir si ton formulaire est en get ou en post :
 
<form ... method=post>
 
Tu dois utiliset $_POST
 
 
<form ... method=get>
 
tu dois utiliser $_GET
 
 
 
Sinon tu peux utiliser $_REQUEST, qui gère les deux.


 
On dirait qu'avec ce formulaire "épuré" et "basic" le problème de transmission des variables est résolu :) . Je vais petit à petit rajouter mes conditions (champs obligatoires et validation de format) en espérant que le pbl ne réapparaisse pas !
 
Dans tous les cas, je te remercie pour ton aide ainsi que NewsletTux.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Problème avec formulaire php - HELP!

 

Sujets relatifs
Problème de pointeursmise en ligne site flash avec formulaire de contact
Modèle de formulaire dans visual studioprobleme aptana 3.2 et debugger
Problème compréhension fonction .itemProbleme firefox propriété scale
Probleme importation fichier.sql trop volumineuxProblème VBA Attachment Email
Probleme de formulaire help svphelp !! problème formulaire et guestbook !!
Plus de sujets relatifs à : Problème avec formulaire php - HELP!


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR