confirmation avant d'envoi par email d'un formulaire - PHP - Programmation
Marsh Posté le 26-09-2008 à 22:35:51
Salut, tu peux faire passer les infos d'une page à l'autre en utilisant la méthode GET ou la méthode POST.
Marsh Posté le 26-09-2008 à 22:51:55
merci... enfin une réponse.
dans la page 1 j'ai un formulaire, la method est post.
les champs de saisie $nom, $prenom sont récupérés dans la page 2: du type $message = $nom. $prenom... je l'affiche avec echo.
sur la page 2 je voudrais creer un autre formulaire avec juste un bouton envoyer qui enverrais les données vers une page 3, qui elle contiendrait la fonction mail ($messsage)
et je ne sais pas comment dans la page 2 renvoyer les variables issues de la page 1 vers la page 3!
Marsh Posté le 26-09-2008 à 22:52:42
utilise du javascript au lieu de faire 3 pages php qui font la meme chose, ça sera plus propre
Marsh Posté le 26-09-2008 à 22:58:46
tu fais un ptit script javascript, en testant tes variabales (si tu as besoin d'un test) et en les affichant dans une fenêtre windows.confrim. Une fois que c'est confirmer tu envoies ton mail
Marsh Posté le 26-09-2008 à 23:01:52
euh oui mais j'ai déja du mal avec le php alors si tu as des exemples de script, pour que je puisse mettre en application ce que tu évoques...
et pis une fenêtre c'est pas top au niveau du look, alors qu'une 2e page de 'transition' permet de rester dans l'esthétique des pages du site...
Marsh Posté le 26-09-2008 à 23:04:08
Il doit bien y avoir une astuce pour récuperer les variables de la page 1 dans la page 3, via la page 2.... mais ne connaissant pas grand chose en php j'aimerai bien trouver un truc simple.
Marsh Posté le 26-09-2008 à 23:10:30
bah si tu veux faire tes 3 pages:
premiere page: formulaire qui envoie tes données avec la méthode post sur la page 2
deuxieme page: tu refais un formulaire en récupérant tes variables dans $_POST[], tu les mets dans un input type hidden
troisiement page: tu récupreres tes variables et tu les traite/envoie
Marsh Posté le 26-09-2008 à 23:13:57
euh et en clair ça donne quoi? un "input de type hidden" pour les nuls ça donne quoi?
Marsh Posté le 26-09-2008 à 23:18:39
google: "html formulaire"
google: "$_POST"
je ne dis pas ça pour être méprisant, mais si tu fais par toi-même, tu apprendras, surtout que c'est quand même assez basique ce que tu demandes
Marsh Posté le 26-09-2008 à 23:22:31
justement, c'est comme ça que je me suis mis au php, mais là je bloque. je trouve des tas de trucs super compliqués. mais pas de réponse claire simple, précise à ce transfert de variables...
voilà le code de la page 2,
<?php
$TO = "xxx@wanadoo.fr";
$headers = 'MIME-Version: 1.0' . "\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\n";
$h = $headers."From: " . $email;
$subject = "Message depuis le site";
$message = "";
$message .= "Message de : <strong>".$nom." ".$prenom."</strong><br />";
$message .= "<br /> Email : ".$email;
$message .= "<br /><br /> <em>".$adresse."</em>";
$message .= "<br /> <em>".$CP."</em>";
$message .= "<br /> <em>".$ville."</em>";
$message .= "<br /><br />à contacter par : ".$E.", ".$C;
$message .= "<br /><br /><strong>".$texte."</strong>";
mail($TO, $subject, $message, $h);
echo $message;
et j'aimerai mettre le mail($To,...) en page 3.
Marsh Posté le 26-09-2008 à 23:25:45
si je vire la fonction mail() et que je met $_POST[$message] ça ne donne rien! même si je met le code php dans le formulaire, alors je ne sais pas comment faire.
Marsh Posté le 26-09-2008 à 23:38:50
... imaginons un questionnaire à remplir, trop long pour être affiché sur une seule page. s'il y a 3 pages avec chacune un formulaire et qu'on veut récupérer toutes les données pour les synthétiser et les envoyer par email, comment faire pour récupérer les variables de la page 1 et de la page 2 et de la page 3 pour les imbriquer dans un seul message qui sera acheminé par la fonction mail()
Marsh Posté le 26-09-2008 à 23:49:12
cesar666 a écrit : google: "html formulaire" |
Marsh Posté le 27-09-2008 à 01:15:23
En gros tu dois faire un truc comme ça :
Sur la page 1 :
<form action="page2.php?" method="post" name="form1">
<input name="champ1" id="champ1" value="">
<input value="Valider" name="submit" type="submit">
</form>
Sur la page 2 :
<form action="page3.php?" method="post" name="form1">
<input name="champ1" id="champ1" value="<?php echo $_POST['champ1'] ?>" type="hidden">
<input value="Accepter" name="submit" type="submit">
</form>
Sur la page 3 tu trouveras la valeur de 'champ1' dans $_POST['champ1'] :
<?php echo $_POST['champ1'] ?>
Marsh Posté le 27-09-2008 à 22:18:33
MERCI!
j'ai bricolé un truc mais ça marche, grâce à des coups de [google] et surtout grace aux pistes que Zipo m'a indiquées.
n'étant pas doué en php; il m'a fallu pas mal de temps pour aussi inclure des conditions if... else.
mais sur le principe ça marche.
Je trouve ça juste un peu bizzzzare qu'il faille repasser par des inputs hidden et que l'on ne puisse pas transferer directement une variable
en tout cas merci!
Marsh Posté le 28-09-2008 à 07:36:13
si tu peux transferer dans une variable en passant les variables en session
Marsh Posté le 29-09-2008 à 00:16:39
????
tiens du nouveau sur ce sujet??
c'est 'koua' les variables en session????
au fait : je tiens encore à remercier ceux qui ont participé à cette discussion, j'ai fait des GROS progrès en php. non seulement j'ai réussi à faire transiter les infos de la page 1 à la page 3 mais en plus j'ai fait des tests if... else....
j'ai même réussi à imbriquer du php dans le formulaire pour cacher le bouton envoyer tant qu'il y a des erreurs de remplissage des champs.
et ça marche sur IE:
if ($err=="vrai" )
{
echo "<br /><br />VOTRE MESSAGE CONTIENT DES ERREURS";
$name="message";
$type="hidden";
}
else
{
$name="Submit";
$type="submit";
}
<form id="form1" name="form1" method="post" action="mail.php">
<p>
<input name="email" id="email" value="<?php echo $_POST['email'] ?>" type="hidden">
<input name="message" id="message" value="<?php echo $message ?>" type="hidden">
</p>
<p>
<input name="Submit2" type="button" onclick="MM_callJS('history.back()')" value="corriger" />
<input name="<?php echo $name ?>" value="envoyer" type="<?php echo $type ?>" />
</p>
</form>
qu'en pensez vous?
pour un débutant la cuisine est savoureuse non?
Marsh Posté le 29-09-2008 à 09:47:44
nicolight a écrit : |
non
Marsh Posté le 29-09-2008 à 11:31:51
je pense que la validation primaire devrait transiter via js, tu mets les variables des premières étapes en session et que tu valides uniquement à la dernière étape ( histoire de balayer le spam par la meme occassion )
Marsh Posté le 26-09-2008 à 21:55:35
bonjour,
j'ai besoin d'aide pour me sortir de là: je voudrais créer une page de confirmation pour relecture avant l'envoi définitif après la saisie d'un formulaire.
j'ai une page 1 "contact.php" avec un formulaire (nom/prenom/adresse/messsage,etc...) et un bouton "valider";
Quand on clique sur valider une page 2 "confirm.php" affiche les données issues du formulaire avec echo; jusque là tout va bien.
Dans cette page 2, je voudrais qu'on puisse cliquer sur un bouton "accepter" pour que le message soit envoyé par email ou sur "annuler" pour revenir au formulaire pour le corriger.
en cliquant sur envoyer une page 3 confirmant l'envoi s'affiche.
Et là, je ne parviens pas à faire transiter les infos de la page 2 à la page 3 pour utiliser la fonction mail dans cette page 3.
comment faire???