Page 1 sur 1

pb de formulaire

Posté : 24 nov. 2007, 21:33
par marionc
bonjour
voila je veux créer un formulaire sur mon site j'ai donc mis:
<form id="form1" name="form1" method="get" action="http://unsite.fr">
  <? 
       	 Mail("[email protected]","formulaire","formulaire:$prenom" ); 
?>  
  <p>prenom
    <input name="prenom" type="text" id="prenom" size="30" />
</p>
  <p>
    <input type="submit" name="Submit" value="Envoyer" />
</p>
</form>
mais le problème c que quand je reçoie le mail il ne m'affiche pas le prenom
je ne sais pas quoi faire
merci d'avance pour votre aide

Posté : 24 nov. 2007, 21:56
par choubix
salut,

je ne suis pas sur que la structure de ton form soit bonne.

essaie

formulaire: $_GET[prenom]; ou $_GET['prenom']

Posté : 25 nov. 2007, 00:20
par zeus
Je pense que tu n'as pas compris le principe de fonctionnement des formulaires :?

Je te conseille de commencer par suivre les tutoriels de PhpDebutants (la colonne de droite)

Mais si tu tiens à savoir pourquoi ça ne fonctionne pas, c'est qu'il ne faut pas envoyer le mail en affichant le formulaire, mais après avoir récupérer la valeur saisie dans le formulaire.

erreur

Posté : 25 nov. 2007, 00:36
par marionc
hello choubix
j'ai essayé $_GET[prenom] et dans le mail reçu il n'y a rien
et j'ai essayé $_GET['prenom'] et il me dit erreur


hello zeus
je sais que l'on peut faire autrement mais je voulais envoyer direct et ça marche il m'envoie le prenom dans le mail
sauf quand je rajoute action="http://unsite.fr et là mon mail est vide et n'affiche plus le prénom


n'y a t il pas moyen que ça marche avec cette méthode?


Merci d'avance

Posté : 25 nov. 2007, 00:46
par zeus
Non, je refuse de croire que ça marche :?

Je t'explique, le PHP génère du code HTML qui est envoyé sur le navigateur et parsé pour donner un résultat graphique.

Donc, ta fonction mail() est appelée avant l'affichage du formulaire. A ce moment là, $prenom n'est pas encore renseignée puisque le formulaire n'a pas encore été affiché. Il est donc encore moins rempli et surtout pas validé ;)

Pour envoyer le prénom saisi dans le formulaire, il faut que tu fasses ton formulaire dans une page, puis que tu récupères les données saisies dans ce formulaire dans un autre script (celui donné dans le "action" du <form>) et tu envois les données par mail ;)

Posté : 25 nov. 2007, 08:37
par choubix
Je plussois Zeus :)

ca me semblait bizarre que le code soit interprete correctement.
normalement tu envoies les infos vers un autre fichier qui traite ton formulaire

Posté : 25 nov. 2007, 17:14
par @rthur
Bonjour,

Voila un exemple pour que tu comprennes le fonctionnement:

page1.php :
<form id="form1" name="form1" method="GET" action="page2.php">
Prénom : <input name="prenom" type="text" size="30" />
<input type="submit" name="Submit" value="Envoyer" />
</form>
page2.php :
<?php
if (mail("[email protected]","formulaire","formulaire: ".$_GET['prenom'])) {
     print "Envoi effectué avec succès!";
}else{
     print "ERREUR: Echec de l'envoi...";
}
?>
Je te recommande pour continuer ton apprentissage du PHP à aller sur les sites suivants:
http://www.phpdebutant.org
http://www.siteduzero.com/tuto-3-4-0-un ... c-php.html

Posté : 25 nov. 2007, 17:41
par zeus
Avec tout ça, si tu ne comprends pas :langue:

Tu as :
- la théorie de fonctionnement des formulaires
- un exemples pratique
- 2 fois un lien vers phpDebutant