Formulaire en php
letraitementphp
-
R4f Messages postés 441 Date d'inscription Statut Membre Dernière intervention -
R4f Messages postés 441 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous,
je viens de faire un formulaire en php, certes basique, les commandes fonctionnent bien. Cependant, j'aimerais savoir s'il est possible de faire un page intermédiaire pour visualisé les données du formulaire avant l'envoi par mail.
Donc faire :
Page 1 => le formulaire avec bouton envoi vers la page de visualisation
Page 2 => la page de visualisation des données rentrer avec le bouton confirmer avec d'envoyer par mail
Page 3 => la confirmation de l'envoi du mail
Voilà mes codes actuelles :
1.formulaire.html
contenue :
<html>
<head>
</head>
<body>
<div align="center">
<form method="POST" action="formmail.php" >
<input type="hidden" name="subject" value="sujet">
<table>
<tr><td>Votre Nom:</td>
<td><input type="text" name="nom" size="30"></td></tr>
<tr><td>Votre Email:</td>
<td><input type="text" name="email" size="30"></td></tr>
<tr><td>Sujet:</td>
<td><input type="text" name="title" size="30"></td></tr>
<tr><td colspan=2>Commentaires:<br>
<textarea COLS=50 ROWS=6 name="comments"></textarea>
</td></tr>
</table>
<br> <input type="submit" value="Envoyer"> -
<input type="reset" value="Annuler">
</form>
</div>
</body>
</html>
2.formmail.php
Contenue:
<?php
$TO = "mon mail@domain";
$h = "From: " . $TO;
$message = "";
while (list($key, $val) = each($HTTP_POST_VARS)) {
$message .= "$key : $val\n";
}
mail($TO, $subject, $message, $h);
Header("Location: http://mon site/confirmation_formulaire.html");
?>
je viens de faire un formulaire en php, certes basique, les commandes fonctionnent bien. Cependant, j'aimerais savoir s'il est possible de faire un page intermédiaire pour visualisé les données du formulaire avant l'envoi par mail.
Donc faire :
Page 1 => le formulaire avec bouton envoi vers la page de visualisation
Page 2 => la page de visualisation des données rentrer avec le bouton confirmer avec d'envoyer par mail
Page 3 => la confirmation de l'envoi du mail
Voilà mes codes actuelles :
1.formulaire.html
contenue :
<html>
<head>
</head>
<body>
<div align="center">
<form method="POST" action="formmail.php" >
<input type="hidden" name="subject" value="sujet">
<table>
<tr><td>Votre Nom:</td>
<td><input type="text" name="nom" size="30"></td></tr>
<tr><td>Votre Email:</td>
<td><input type="text" name="email" size="30"></td></tr>
<tr><td>Sujet:</td>
<td><input type="text" name="title" size="30"></td></tr>
<tr><td colspan=2>Commentaires:<br>
<textarea COLS=50 ROWS=6 name="comments"></textarea>
</td></tr>
</table>
<br> <input type="submit" value="Envoyer"> -
<input type="reset" value="Annuler">
</form>
</div>
</body>
</html>
2.formmail.php
Contenue:
<?php
$TO = "mon mail@domain";
$h = "From: " . $TO;
$message = "";
while (list($key, $val) = each($HTTP_POST_VARS)) {
$message .= "$key : $val\n";
}
mail($TO, $subject, $message, $h);
Header("Location: http://mon site/confirmation_formulaire.html");
?>
A voir également:
- Formulaire en php
- Whatsapp formulaire opposition - Guide
- Formulaire de réclamation facebook - Guide
- Formulaire de reclamation instagram - Guide
- Easy php - Télécharger - Divers Web & Internet
- Confirmer le nouvel envoi du formulaire err_cache_miss - Forum Webmastering
3 réponses
Salut,
Je ne comprend pas sur quoi tu butes.
C'est peut être pas toi qui a codé ?
Remplaces action="formmail.php" par une autre page d'un autre nom, qui fera quasi la même chose que fomrmail.php, sauf l'envoi du mail.
Bien sûr il faut réintegrer un formulaire vide, que php rempli avec les infos de formulaire.html.
Dans cette nouvelle page tu mets cette fois action="formmail.php".
Et le tour est joué.
Ju
Je ne comprend pas sur quoi tu butes.
C'est peut être pas toi qui a codé ?
Remplaces action="formmail.php" par une autre page d'un autre nom, qui fera quasi la même chose que fomrmail.php, sauf l'envoi du mail.
Bien sûr il faut réintegrer un formulaire vide, que php rempli avec les infos de formulaire.html.
Dans cette nouvelle page tu mets cette fois action="formmail.php".
Et le tour est joué.
Ju
Salut letraitementphp,
Ce que tu peux faire, c'est de faire une page2.php
Et le code de formail est légèrement changé ici :
qui devient
Et voilà !
N'oublie pas de modifier formulaire.html
Raph
Ce que tu peux faire, c'est de faire une page2.php
<?php session_start(); while (list($key, $val) = each($HTTP_POST_VARS)) { $message .= "$key : $val\n"; $_SESSION[$key] = $val; } ?> <form action="formmail.php"> Voici les données qui vont être envoyées par e-mail : <pre> $message </pre> <input type="submit" value="Envoyer"> </form> <br/>Si vous n'êtes pas satisfait(e), utilisez la touche "retour" de votre navigateur.
Et le code de formail est légèrement changé ici :
while (list($key, $val) = each($HTTP_POST_VARS)) { $message .= "$key : $val\n"; }
qui devient
session_start(); while (list($key, $val) = each($_SESSION)) { $message .= "$key : $val\n"; }
Et voilà !
N'oublie pas de modifier formulaire.html
<form method="POST" action="page2.php" >
Raph
Salut R4f, je viens de tester tes codes, mais lorsque je clic pour visualisé les informations rentrées la page2.php m'affiche :
J'ai également tester en retirant la ligne session-start
cependant le fonction "$message" n'affiche pas les données même en rajoutant les balises php
par conséquant le mail qui est envoyer et vide
Warning: session_start() [function.session-start]: open(/mnt/116/sdb/1/d/jpl26/sessions/sess_ea5e3479faec1f6b61fe59b16b89cbbd, O_RDWR) failed: No such file or directory (2) in /mnt/116/sdb/1/d/jpl26/test/visualisation.php on line 3 Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /mnt/116/sdb/1/d/jpl26/test/visualisation.php:3) in /mnt/116/sdb/1/d/jpl26/test/visualisation.php on line 3 Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /mnt/116/sdb/1/d/jpl26/test/visualisation.php:3) in /mnt/116/sdb/1/d/jpl26/test/visualisation.php on line 3 Voici les données qui vont être envoyées par e-mail : $message (bouton envoyer) Si vous n'êtes pas satisfait(e), utilisez la touche "retour" de votre navigateur. Warning: Unknown(): open(/mnt/116/sdb/1/d/jpl26/sessions/sess_ea5e3479faec1f6b61fe59b16b89cbbd, O_RDWR) failed: No such file or directory (2) in Unknown on line 0 Warning: Unknown(): Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/mnt/116/sdb/1/d/jpl26/sessions) in Unknown on line 0
J'ai également tester en retirant la ligne session-start
cependant le fonction "$message" n'affiche pas les données même en rajoutant les balises php
par conséquant le mail qui est envoyer et vide
Salut letraitementphp,
1- ne pas retirer le session_start car il est là pas QUE pour faire joli. En fait, je mets les données en session dans la phase 2 pour pouvoir les récupérer lors de la phase 3. Ca éviter d'avoir plein de paramètres à re-passer de la phase 2 à la phase 3.
2- il faut que le session_start soit au tout début de ton script, avant <html> et avant même d'avoir fait le moindre echo. Le fichier doit commencer par
3- le soucis est apparemment que les sessions ne sont pas très bien gérées par ton hébergeur. Tu es chez qui ?
Raph
1- ne pas retirer le session_start car il est là pas QUE pour faire joli. En fait, je mets les données en session dans la phase 2 pour pouvoir les récupérer lors de la phase 3. Ca éviter d'avoir plein de paramètres à re-passer de la phase 2 à la phase 3.
2- il faut que le session_start soit au tout début de ton script, avant <html> et avant même d'avoir fait le moindre echo. Le fichier doit commencer par
<?php sessio_start();
3- le soucis est apparemment que les sessions ne sont pas très bien gérées par ton hébergeur. Tu es chez qui ?
Raph