OVH Cloud OVH Cloud

Formulaire

6 réponses
Avatar
Gilles
bonjour à tous et à toutes

j'ai creer un formulaire je recupere les donné via $_post et j'envoie le
tous via email

Je voudrais suite a l'envoie de l'email tout les champs à 0 comment pouis je
faire

Merci d'avance


--
# ANTISPAM #
Click on the link to answer - Cliquez sur le lien pour répondre
http://www.cerbermail.com/?zH3uNd5dV8

6 réponses

Avatar
Olivier Miakinen

J'ai créé un formulaire, je récupère les données via $_POST et j'envoie le
tout via email.

Je voudrais, suite a l'envoi de l'email, tous les champs à 0. Comment puis-je
faire ?


Je ne vois pas où est le problème. Lorsque tu génères une nouvelle page
PHP en réponse à la requête POST, il te suffit d'initialiser tous les
champs à zéro au lieu de les pré-remplir avec le résultat du POST.

Non ?

--
Olivier Miakinen
Non, monsieur le juge, je vous le jure : jamais je n'ai cité
Bruxelles dans ma signature.

Avatar
CrazyCat
Gilles wrote:
j'ai creer un formulaire je recupere les donné via $_post et j'envoie le
tous via email
Je voudrais suite a l'envoie de l'email tout les champs à 0 comment pouis je
faire


vider les variables suite à l'envoit?
pour éviter de les renvoyer en cas de refresh de la page?
ça ne marchera pas, c'est le navigateur qui les a en mémoire.

Mais par contre, tu peux aller sur une autre page après l'envoit, afin
de ne pas risquer de renvoyer le mail.


--
Découvrez Original War: http://www.original-war.org
Humour: http://www.chatfou.com
Tchattez en liberté: http://www.c-p-f.net

Avatar
bruno modulix
Gilles wrote:
j'ai creer un formulaire je recupere les donné via $_post et j'envoie le
tous via email
Je voudrais suite a l'envoie de l'email tout les champs à 0 comment pouis je
faire


Difficile de répondre dans l'absolu puisqu'on ne sait pas comment ton
code est structuré, mais en supposant que le formulaire se rappelle
lui-même (cas courant), le plus simple est de remplir les valeur des
champs (attribut 'value' pour un input type='text') par code.

exemple à la con, incomplet, probablement buggé etc (je laisse au gourou
de service le soin de corriger !-), mais qui a le mérite d'expliciter le
principe :

// mailform.php

<?php
// valide les paramètres et envoie le mail
// retourne un message d'erreur en cas d'erreur,
// une chaine vide en cas de réussite
function envoyerMail($from, $to, $msg) {
// code envoi mail ici
}

// retourne la chaine nettoyée de tout
// ce qu'on ne veut pas y voir
function nettoyerSaisie($saisie) {
// code nettoyage ici
}

// j'ai horreur de réécrire plusieurs fois
// ce genre de test à la c...
function lireChamp($nomChamp) {
return isset($_POST[$nomChamp])
? nettoyerSaisie($_POST[$nomChamp]);
: '';
}

$val_from = lireChamp('champ_from');
$val_to = lireChamp('champ_to');
$val_msg = lireChamp('champ_msg');
$status_msg = ''; // par défaut

// ya quelque chose à faire ?
if (isset($_REQUEST['envoyer'])) {
$status_msg = envoyerMail($val_from, $val_to, $val_msg);
if (! $status_msg) {
// pas d'erreur, on réinitialise les champs
$val_from = '';
$val_to = '';
$val_msg = '';
// et on indique que l'envoi s'est bien passé
$status_msg = "Votre mail a bien été envoyé";
}
// sinon, on ne touche à rien...
}
?>

<html>
<head></head>
<body>
blah blah blah...
<hr>
<?php
if ($status_msg) {
echo "t<b>$status_msg</b><br>n";
}
?>
<form name='mailform' method="POST" action="mailform.php">
from :
<input name="champ_from" type="text" value="<?php echo $val_from;?>">
<br>
to :
<input name="champ_to" type="text" value="<?php echo $val_to;?>">
<br>
Message :
<textarea name="champ_msg"><?php echo $val_from;?></textarea>
<br>
<input type="submit" name="envoyer" value="envoyer">
</form>
</body
</html>

HTH
--
bruno desthuilliers
ruby -e "print ''.split('@').collect{|p|
p.split('.').collect{|w| w.reverse}.join('.')}.join('@')"

Avatar
Gilles
Ce formulaire est sur un popup

--
# ANTISPAM #
Click on the link to answer - Cliquez sur le lien pour répondre
http://www.cerbermail.com/?zH3uNd5dV8
"CrazyCat" a écrit dans le message de news:
d0ht7l$b72$
Gilles wrote:
j'ai creer un formulaire je recupere les donné via $_post et j'envoie le
tous via email
Je voudrais suite a l'envoie de l'email tout les champs à 0 comment pouis
je faire


vider les variables suite à l'envoit?
pour éviter de les renvoyer en cas de refresh de la page?
ça ne marchera pas, c'est le navigateur qui les a en mémoire.

Mais par contre, tu peux aller sur une autre page après l'envoit, afin de
ne pas risquer de renvoyer le mail.


--
Découvrez Original War: http://www.original-war.org
Humour: http://www.chatfou.com
Tchattez en liberté: http://www.c-p-f.net



Avatar
CrazyCat
Gilles wrote:
Ce formulaire est sur un popup


Il ,'empèche que je ne comprend pas ta question...

Tu as une page, ou un popup, qui envoit une série de champs à mail.php
(arbitrairement).
Cette page envoit un mail en fonction des données reçues par post.

Tu veux vider ensuite ces variables? pour quelle raison? (si si, ça influe).

Tu peux par exemple faire:
<?
foreach ($_POST as $key => $val) {
$_POST[$key] = "";
$key = "";
}
?>
Ceci vide le tableau $_POST et les variables contenues dedans... sauf si
une personne décide de recharger la page mail.php en utilisant la touche F5.

Tu as aussi la solution du:
<? Header("Location: mail.php") ?>
qui recharge la page mail.php sans envoyer de données ($_POST est vide),
mais il faut alors que tu penses à traiter le cas où tu n'envois pas de
données (sinon tu pars en boucle infinie).


--
Découvrez Original War: http://www.original-war.org
Humour: http://www.chatfou.com
Tchattez en liberté: http://www.c-p-f.net

Avatar
Olivier Miakinen

Ce formulaire est sur un popup


Je ne suis pas sûr que tu aies compris la réponse de CrazyCat (que
d'ailleurs tu cites de façon assez peu lisible, dans ta signature).

Quelle différence fais-tu entre un popup et une autre page, du point de
vue du couple requête/réponse en PHP ?

En ce qui concerne la façon de citer :
<http://www.giromini.org/usenet-fr/repondre.html>.

--
Olivier Miakinen
Non, monsieur le juge, je vous le jure : jamais je n'ai cité
Bruxelles dans ma signature.