PB de Reception d'Email Forumlaire PHP

kiarah Messages postés 17 Date d'inscription lundi 20 septembre 2004 Statut Membre Dernière intervention 21 septembre 2009 - 30 mai 2005 à 10:50
kiarah Messages postés 17 Date d'inscription lundi 20 septembre 2004 Statut Membre Dernière intervention 21 septembre 2009 - 30 mai 2005 à 21:20
bonjour les gens ^^
Je rencontre un probleme vraiment curieux avec mon formulaire . :

j'envoie des variables via un formulaire HTML (contact.html)
vers un script php (result.php)

j'ai un probleme avec le composant Select :
Quand je teste la page en ligne je coche " question " en motif de message, et tout marche comme il faut La page resul saffiche correctement et lemail m'est envoyé.
MAIS quand je clique sur "remarque", la page result s'affiche correctement, MAIS je ne RECOIS PAS l'EMAIL !!!!

Voici le lien :
http://musekyo.free.fr/bg/pages/contact.html

ps : notez au passage que la variable $prevenir ne sert a rien (dans result.php), jaimerais l'enlever mais quand je le fais, ca fait tout clocher

et voici le code php de la page result.php :
**********************************************************

PHP :


<? 
  $nom=trim($nom); 
  $email=trim($email); 
  $prenom=trim($prenom); 
  $commentaires=trim($commentaires); 
  $sortes=trim($sortes); 
  $adresse=trim($adresse); 
  $adresse2=trim($adresse2); 
   
  if (empty($email)) //test pour savoir si le champ mail est vide 
      { 
      $texte= "Vous devez remplir le champ email, Retournez &#224; la page pr&#233;c&#233;dente merci"; 
      } elseif (!ereg("^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-z]{2,3}$", $email)) //test le contenu de mail pour conformit&#233; ereg pour expression reguli&#232;re 
      { 
         $texte= "Vous n'avez pas entr&#233; une adresse email valide. Retournez &#224;" 
                 ." la page pr&#233;c&#233;dente et essayez &#224; nouveau."; 
      } 
    else 
    { 

  //adresse &#224; laquelle le message sera exp&#233;di&#233;e 
  $toaddress = "mon_email@machin.com";  // l'email ou sera expedi&#233; le formulaire 

  //sujet du message 
  $subject = "Commentaires"; 
  //corps du message 
    if (! isset($prevenir)) //correspond &#224; si la variable prevenir n'est pas affect&#233; 
                            //le ! devant correspond &#224; la n&#233;gation 
  { 
        $prevenir="non"; //alors on la cr&#233;e et on lui donne la valeur "non" 
  } 
  $mailcontent = "Sorte de commentaires: ".$sortes."\n" 
              ."Sujet: ".$sujet."\n" 
              ."Nom: ".$nom."\n" 
              ."Pr&#233;nom: ".$prenom."\n" 
              ."email: ".$email."\n" 
              ."Adresse: ".$adresse."\n" 
              ."Adresse2: ".$adresse2."\n" 
              ."Commentaires: \n".$commentaires."\n" 
              ."Le prevenir: \n".$prevenir."\n"; 
  //adresse du serveur 
  $fromaddress = "webserver@bg.com"; 

  mail($toaddress, $subject, $mailcontent, $fromaddress);   
$texte="Merci, votre email a bien &#233;t&#233; envoy&#233;. Nous vous r&#233;pondrons tr&#232;s bient&#244;t"; 

  } 
?> 


************************************************** ***
En esperant qu'il y aura un genie pour trouver la solution, je vous remercie d'avance !!!

kiarah

30 réponses

malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
30 mai 2005 à 11:24
Hello,



tu devrais relire des tutos sur les formulaires et php, ton code manque
de beaucoup de choses. Notamment, on recupere les variables d'un
formulaire POST avec ces variables :

$_POST['email'] (par exemple).

Il faut aussi tester la soumission de ton formulaire.

Enfin, ton select n'a aucune valeur (<option value="...?">blabla</option>)
0
kiarah Messages postés 17 Date d'inscription lundi 20 septembre 2004 Statut Membre Dernière intervention 21 septembre 2009
30 mai 2005 à 11:52
Euh....merci pour tes conseils mais ca m'aide pas bcp... car je suis pas une pro du php, et je vois tjs pas comment resoudre mon pb. Je sais meme pas comment faire ce que tu a ecrit, etc...Tout est flou dans mon esprit... Je suis nulle hein? mais je demande qu'à apprendre !

kiarah
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
30 mai 2005 à 12:00
Je pense que tu devrais commencer par mettre les valeurs correctes a
tes balises <option> dans ton <select> (en bref, tu laisses
comme c'est, et tu ajoues value="remarque" pour l'une, et
value="question" pour l'autre.
0
kiarah Messages postés 17 Date d'inscription lundi 20 septembre 2004 Statut Membre Dernière intervention 21 septembre 2009
30 mai 2005 à 12:45
euh..je veux bien mais c koi la syntaxe pour la value? Oou dois-je la mettre ?
[php]
<select name="sortes" id="select3">
<option>remarque</option>
<option>question</option>
</select>
/PHP
kiarahkiarah
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
30 mai 2005 à 12:46
Bah je te l'ai mise, tu n'y mets pas du tien ;-)




<select name="sortes" id="select3">


<option value="remarque">remarque</option>


<option value="question">question</option>

</select>
0
kiarah Messages postés 17 Date d'inscription lundi 20 septembre 2004 Statut Membre Dernière intervention 21 septembre 2009
30 mai 2005 à 13:00
lol, si mais j't'ai di, j'suis pommée et jai tellement peur que ca marche pas.
jai rajouté value comme tu a ecris...Malheuresement, pas de changement :
Quand je clique sur "question" : tout va bien et je recois l'email
Mais quand je clique "remarque", je ne recois pas l'email...c dingue !

Tu a une autre idée?

kiarah
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
30 mai 2005 à 13:11
Hmmm, je ne les vois pas, la, les value= "...", sur ta page ?



Ensuite...dans ton code php, plusieurs choses :

ON utilise $_POST['variable'] pour recuperer les variables provenant
d'un formulaire envoye avec la methode post. Je veux dire par la que
ceci :

$nom=trim($nom); 

n'est pas bon. Ce doit etre :

$_POST['nom'] = trim (
$_POST['nom']);

Ou si tu tiens a avoir des variables plus simples :

$nom = 
= trim 
($_POST['nom']);


Avant tout, on teste le submit, et enleve les espaces dans le name de
ton submit, ainsi que dans sa value (pour centrer avoir un espacement,
lol, utilise encore des styles : margin: 5px; par exemple) :

if (isset ($_POST[' ok ']) && $_POST['ok'] =='Envoyez') {

tout ton code

}



Et le principe est le meme pour toutes variables, teste les avant de les utiliser. Donc avant de te servir de $sortes:

if (isset ($_POST['sortes'])) {

}



Tu peux utiliser directement les $_POST['machin'] sans passer par des variables intermediaires
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
30 mai 2005 à 13:12
Heu g mis un = en trop ici :

 $nom = 
= trim 
($_POST['nom']);

evidemment ;-)

ce doit etre :

 $nom =
 trim 
($_POST['nom']);
0
kiarah Messages postés 17 Date d'inscription lundi 20 septembre 2004 Statut Membre Dernière intervention 21 septembre 2009
30 mai 2005 à 13:42
Alors,
- jai remi comme ta dit les
$nom =
 trim 

($_POST['nom']); 
dans result

- et enlever les espace du submit dans contact

Par contre, ca :

if (isset ($_POST[' ok ']) && $_POST['ok'] = ='Envoyez') {
tout mon code
}
Jai essayé de le mettre mais qd je teste, result marche meme plus....j'men sort pas :'(

kiarah
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
30 mai 2005 à 13:52
Bon remets ton result completement ici, je corrige.
0
kiarah Messages postés 17 Date d'inscription lundi 20 septembre 2004 Statut Membre Dernière intervention 21 septembre 2009
30 mai 2005 à 14:03
[PHP]
<?
$nom = trim ($_POST['nom']);
$email = trim ($_POST['email']);
$prenom = trim ($_POST['prenom']);
$commentaires = trim ($_POST['commentaires']);
$sortes = trim ($_POST['sortes']);
$adresse = trim ($_POST['adresse']);
$adresse2 = trim ($_POST['adresse2']);

if (empty($email)) //test pour savoir si le champ mail est vide
{
$texte= "Vous devez remplir le champ email, Retournez à la page précédente merci";
} elseif (!ereg("^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-z]{2,3}$", $email)) //test le contenu de mail pour conformité ereg pour expression regulière
{
$texte= "Vous n'avez pas entré une adresse email valide. Retournez à"
." la page précédente et essayez à nouveau.";
}
else
{


//adresse à laquelle le message sera expédiée
$toaddress = "[mailto:kiarah27@aol.com kiarah27@aol.com]"; // l'email ou sera expedié le formulaire


//sujet du message
$subject = "Commentaires";
//corps du message
if (! isset($prevenir)) //correspond à si la variable prevenir n'est pas affecté
//le ! devant correspond à la négation
{
$prevenir="non"; //alors on la crée et on lui donne la valeur "non"
}
$mailcontent = "Sorte de commentaires: ".$sortes."\n"
."Sujet: ".$sujet."\n"
."Nom: ".$nom."\n"
."Prénom: ".$prenom."\n"
."email: ".$email."\n"
."Adresse: ".$adresse."\n"
."Adresse2: ".$adresse2."\n"
."Commentaires: \n".$commentaires."\n"
."Le prevenir: \n".$prevenir."\n";
//adresse du serveur
$fromaddress = "[mailto:webserver@bg.com webserver@bg.com]";


mail($toaddress, $subject, $mailcontent, $fromaddress);
$texte="Merci, votre email a bien été envoyé. Nous vous répondrons très bientôt." ;


}
?>/PHP

kiarahkiarah
0
kiarah Messages postés 17 Date d'inscription lundi 20 septembre 2004 Statut Membre Dernière intervention 21 septembre 2009
30 mai 2005 à 14:05
je reve, ca met meme plus la mise en page ave les couleurs du script !! beurk !

kiarah
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
30 mai 2005 à 14:23
<?
if (isset ($_POST['ok']) && $_POST['ok'] === 'Envoyer') { // ici, il faut remplacer ok par les bons noms et valeur : ok est le nom du bouton submit, Envoyer est sa valeur
if (isset ($_POST['nom']))
$nom = trim ($_POST['nom']);
if (isset ($_POST['email']))
$email = trim ($_POST['email']);
if (isset ($_POST['prenom']))
$prenom = trim ($_POST['prenom']);
if (isset ($_POST['commentaires']))
$commentaires = trim ($_POST['commentaires']);
if (isset ($_POST['sortes']))
$sortes = trim ($_POST['sortes']);
if (isset ($_POST['adresse']))
$adresse = trim ($_POST['adresse']);
if (isset ($_POST['adresse2']))
$adresse2 = trim ($_POST['adresse2']);

if (empty($email)) //test pour savoir si le champ mail est vide
{
$texte= "Vous devez remplir le champ email, Retournez à la page précédente merci";
}
elseif (!ereg("^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-z]{2,3}$", $email)) //test le contenu de mail pour conformité ereg pour expression regulière
{
$texte= "Vous n'avez pas entré une adresse email valide. Retournez à"
." la page précédente et essayez à nouveau.";
}
else
{
//adresse à laquelle le message sera expédiée
$toaddress = "[mailto:kiarah27@aol.com kiarah27@aol.com]"; // l'email ou sera expedié le formulaire


//sujet du message
$subject = "Commentaires";
//corps du message
if (!isset($_POST['prevenir'])) //correspond à si la variable prevenir n'est pas affecté
//le ! devant correspond à la négation
{
$prevenir="non"; //alors on la crée et on lui donne la valeur "non"
}
$mailcontent = "Sorte de commentaires: ".$sortes."\n"
."Sujet: ".$sujet."\n"
."Nom: ".$nom."\n"
."Prénom: ".$prenom."\n"
."email: ".$email."\n"
."Adresse: ".$adresse."\n"
."Adresse2: ".$adresse2."\n"
."Commentaires: \n".$commentaires."\n"
."Le prevenir: \n".$prevenir."\n";
//adresse du serveur
$fromaddress = "[mailto:webserver@bg.com webserver@bg.com]";


mail($toaddress, $subject, $mailcontent, $fromaddress);
$texte="Merci, votre email a bien été envoyé. Nous vous répondrons très bientôt." ;


}
}
?>

essaye ca...mais c'est complique, la page est longue lol. J'espere ne rien avoir oublie.
0
kiarah Messages postés 17 Date d'inscription lundi 20 septembre 2004 Statut Membre Dernière intervention 21 septembre 2009
30 mai 2005 à 14:30
bon...merci de ton code
Je lai testé mais malheuresement la page result n'affiche plus de message et biensur...en plus, ca n'envoie pas de mail...

so ?????? (qu'est ce que c enervanttttt !!)

kiarahkiarah
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
30 mai 2005 à 14:59
Bon, un tuto rapide lol :



<?php

echo '<form method ="post" action ="',$_SERVER['PHP_SELF'],'">';

echo '<select name="nomListe">';

echo '<option value="note">par note</option>';

echo '<option value="vote">par vote</option>';

echo '</select>';

echo '';

echo '</form>';



if (isset ($_POST['submit']) && $_POST['submit'] === 'trier') {

if (isset ($_POST['nomListe'])) {


$select_all=mysql_query('SELECT note, vote FROM '.$table.' ORDER BY
'.$_POST['nomListe'].'');

}

}

?>



Voici comment on doit traiter un formulaire en php.

Essaye d'adapter
0
kiarah Messages postés 17 Date d'inscription lundi 20 septembre 2004 Statut Membre Dernière intervention 21 septembre 2009
30 mai 2005 à 15:13
kiarahkiarah
0
kiarah Messages postés 17 Date d'inscription lundi 20 septembre 2004 Statut Membre Dernière intervention 21 septembre 2009
30 mai 2005 à 15:16
kiarahkiarah
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
30 mai 2005 à 15:18
lol...ouiiii ? Probleme avec le forum...?
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
30 mai 2005 à 15:30
La requete etait juste un exemple d'utilisationb des variables recuperees depuis un formulaire :-)





Bon, j'ai repris, et effectue qques modifications (sans plus hein)
juste pour voir: cela fonctionne. La j'ai juste mis ca sur la meme page
(d'ou l'action du formulaire qui a change), et je fais un echo au lieu
du mailto :





0
kiarah Messages postés 17 Date d'inscription lundi 20 septembre 2004 Statut Membre Dernière intervention 21 septembre 2009
30 mai 2005 à 15:54
euh.....j'ai du mal, ca veut dire que je dois tout mettre sur une meme page?

Au depart, jai mis ton code FORM ds mon contact et le php ds mon RESULT...mais le resultat en ligne c'est du n'importe quoi, donc jai pas du faire ca comme il faut ....
pffffff

kiarah
0
Rejoignez-nous