probleme liste déroulante dans formulaire

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : probleme liste déroulante dans formulaire

[résolu] probleme liste déroulante dans formulaire

par celine123 » 26 juil. 2006, 11:33

Salut
Bon ca marche niquel comme ca, merci de vos conseils (et de vos solutions)
A toute et encore merci
celine

par Ryle » 25 juil. 2006, 23:36

ah oui tiens bien vu, j'avais pas fait attention qu'il exécutait tout le code php à chaque ouverture de la page.. La solution d'aelurus de tester si on a reçu des données du formulaire en vérifiant que $_POST['tonBouton'] est définie est en effet a utiliser.

Personnellement, je l'étendrais même à tout la partie php qui n'a besoin d'être exécutée qu'une fois le formulaire renvoyé :)

par aelurus » 25 juil. 2006, 16:49

Ba si tu as mit ssa c'est normal. Car ton code dit si tu ne peux pas envoyé un email vide alors vas sur www.blablabla.com.

Essaye
if (isset ($_POST['valider'])){
    if (@!mail($email_dest,$subject,$sortie,$headers)) {
echo("Envoi du formulaire impossible");}
else {
  header("Location: http://www.blabla.com");
   }}
//ensuite ton blabla pour le mail.
La ont dit si le formulaire est valider alors tu test son envoi, si l'envoie passe pas affiche Envoi du formulaire impossible si il passe vas sur blablabla.com
et si le form est pas validé ba affiche le form ....
C'est bien sa que tu veux faire je pense.

par celine123 » 25 juil. 2006, 16:11

Bon alors dans le code de précedemment, (voir le haut du post) j'ai juste rajouté
if (@!mail($email_dest,$subject,$sortie,$headers)) {
echo("Envoi du formulaire impossible");}
else { 
  header("Location: http://www.blabla.com");
   }
Voili voilou
celine

par aelurus » 25 juil. 2006, 14:25

Excuse moi j'étais pas logé.
c'est qu'il fait la redirection directement, sans même afficher le formulaire
celine
Heu redonne quand meme le code que tu as mit car il doit y avoir un aoublie dans le if de depart ou une mauvaiselogique dans les conditions du if je pense

par Invité » 25 juil. 2006, 14:21

Ba tu rediriges sur la page voulu en specifiant le action="tapage" dans le formulaire et dans le ta page tu inclus le traitement du formulaire.
Pour moi tu as les deux techniques qui permette de resoudre ta requette.
Voir meme juste rejouter la technique du header dans ton code deja donné mais j'ai peur que ce soit pas evident a gerer avec l'envoi du header.
Je ferais des includes car j'aime bien les pseudo frame :) plus simple dans ma tete. Que te pose probleme la logique de ton action ou la procedure j'essaye de faire de mon mieux mais ne cerne pas ton besoin.

par Invité » 25 juil. 2006, 13:33

Resalut
En fait je veux, qu'une fois le formulaire rempli et valider par le bouton submit, ca envoi A LA FOIS les variables sur le mail ET une redirection sur une autre page.
Le
header
ne fait QU'UNE redirection, j'ai plus l'affichage du formulaire!

par aelurus » 25 juil. 2006, 12:14

S'il s'agit juste d'une redirection pour ne pas revenir sur le formulaire après l'envoi du mail, il te suffit d'utiliser la fonction header(). Par exemple :
S'il s'agit juste d'une redirection

Cela semble normal, precise clairement ce que tu veux une fois ton formulaire validé.

par celine123 » 25 juil. 2006, 12:06

Salut
C'est exactement ce que je veux faire Ryle, rediriger apres l'envoi du mail le probleme avec
header
c'est qu'il fait la redirection directement, sans même afficher le formulaire
celine

par aelurus » 24 juil. 2006, 17:38

Rooooooooooooooo
header()
Ba voila une nouveau jouet ^^ à essayer

par Ryle » 24 juil. 2006, 17:23

S'il s'agit juste d'une redirection pour ne pas revenir sur le formulaire après l'envoi du mail, il te suffit d'utiliser la fonction header(). Par exemple :
if (@!mail($email_dest,$subject,$sortie,$headers)) { 
  echo("Envoi du formulaire impossible"); 
}
else { // en cas de succès
  header("Location: urlDeLaNouvellePage"); // redirige vers la nouvelle page
  exit(); // optionnel : arrête le traitement ici, c'est pas la peine de lire le reste de la page et de faire des trucs compliqués dessus alors qu'on va en changer ;)
}
Si tu as besoin des valeurs saisies dans le formulaire tu peux creuser la solution d'aelurus :) (sachant que tu peux aussi en repasser en Get via l'url de la page que tu ouvres : "Location: maPage.php?param=xxx")

par aelurus » 24 juil. 2006, 16:35

heu premiere idée tu inclues le traitement de ton formulaire dan sla page demancer, car je ne pense pas que l'on puisse faire de multiple traitement juste avec l'url de validation. Mais plus dans la de traitement elle meme :)
genre :
include(traitement.php);
if (isset($_post)){alors blabla bla tout ce que tu veux}{ ou alors bla bla bla tout ce que tu veux}
et la encore blabla bal
Si je dit pas trop de bettise ^^

par celine123 » 24 juil. 2006, 16:10

ARgh c'était trop simple, je suis bête!!!
Pendant que j'y suis comment pourrais je faire pour que le bouton envoyer lance a la fois le résultat du formulaire par mail (comme maintenant) mais aussi redirige sur une autre page
En tout cas, merci pour vos explications
celine

par aelurus » 24 juil. 2006, 15:53

Fait un
print_r($_POST);
c pratique pour recup les variable qui passe par un formulaire.


$partie_liste
^^ c la tite bete qui manque je crois

par Ryle » 24 juil. 2006, 15:05

Utilises les balises [ php ] pour du code php, ca met en couleur et c'est plus facile pour trouver des erreurs :)

As-tu testé la valeur de $_POST['liste_rubrique'] pour savoir si tu rentrais bien dans le if ?
As-tu testé la valeur de $_POST['list'] pour savoir si tu le récupérais bien ?
As-tu testé la valeur de $partie_liste pour vérifier qu'elle contenait bien ce que tu attendais ?
As-tu testé la valeur de $sortie pour vérfier qu'elle correspondait à ce que tu voulais envoyer ?

Et maintenant que tu as pu situé le problème, ne manquerait-il pas quelque chose lorsque tu constitues ta variable $sortie ? ;)