[RESOLU] Retour après remplissage d'un 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 : [RESOLU] Retour après remplissage d'un formulaire

Re: [RESOLU] Retour après remplissage d'un formulaire

par Paps » 22 nov. 2012, 10:11

Merci !
Bonne idée, déjà aperçue dans les forums, mais que je n'ai pas (encore) eu le temps (le courage) d'explorer...
A ma prochaine mise à jour de site, j'essaye !
Bonne journée,
Paps

Re: [RESOLU] Retour après remplissage d'un formulaire

par Saian » 19 nov. 2012, 22:35

En fait tu peux faire une seule page pour le formulaire. En simplifié :
<?php
if(/* le formulaire est soumis */) {
  // traitement d'envoi du formulaire
  // si envoi OK -> redirection vers la page souhaitée
}
?>
<html>
<head>...</head>
<body>
  <!-- le header -->
  <?php if(/* il y a des erreurs */): ?>
    <!-- afficher les erreurs -->
  <?php endif; ?>
  <!-- le formulaire -->
  <!-- le footer -->
</body>
</html>

Re: Retour après remplissage d'un formulaire

par Paps » 19 nov. 2012, 22:22

Bonsoir,

Voilà un sujet qui n'a pas attiré les foules, mais tant pis, ça arrive... :(
J'ai donc fini mon problème à grands renforts de tests et de "headers" php. Ca marche, avec beaucoup (trop à mon goût) de pages intermédiaires.
Ce qui n'énerve surtout, c'est de ne pas pouvoir afficher le message "formulaire incomplet" (ou "mal rempli") sur le formulaire lui-même.
Peut-être avec une popup javascript ? Pas eu le temps ni le courage d'explrer cette voie.

Bien que mon problème ne soit pas strictement résolu, je le marque comme tel...
A une auitre fois sans doute,
Paps

Re: Retour après remplissage d'un formulaire

par xTG » 15 nov. 2012, 19:46

Tu as donc déjà la gestion des erreurs si je comprends bien ?
Tu nécessites juste une redirection automatique.
header('location: maPage.extension');
Sachant qu'un header() doit se placer avant tout affichage, donc si tu as du HTML dans ton script de réception du formulaire il faudra le supprimer ou le placer après (mais il ne sera pas visible à cause de la redirection donc...).

Retour après remplissage d'un formulaire

par Paps » 15 nov. 2012, 17:50

Bonjour,

Après quelques balbutiements, j'ai fini par créer un formulaire (html), traité par un script php pour envoi des données par mail, et tout ceci fonctionne très bien... tant que c'est en "autonome".
Là ou je cafouille complètement, c'est pour intégrer le tout dans mon site et enchaîner les pages astucieusement. J'ai bien trouvé ici et là quelques bribes de solutions, mais je ne m'en sors pas.

Ce que je voudrais faire me paraît tout simple et classique :

J'appelle le formulaire "formulaire.html" par un lien sur une page que j'appellerai "appel.html" : OK.
Le formulaire s'affiche, je le remplis (plus ou moins bien...) et le bouton [submit] déclenche "formulaire.php". OK
Je fais alors un test de "bon remplissage" du formulaire :

- si le test est négatif, je voudrais remonter d'un niveau, à la page "formulaire" (et si possible en haut de page), sans que les champs précédents soient effacés, et y afficher une alerte indiquant l'erreur, pour pouvoir corriger et continuer (j'arrive à faire ça mais avec une page intermédiaire demandant au moins un clic).

- si le résultat est positif, je continue le traitement et envoie le mail. Je voudrais alors remonter de 2 niveaux (page d'appel) et y afficher un message indiquant, selon le cas, que tout s'est bien passé ou que l'envoi a foiré et qu'il faut recommncer.

Voilà, c'est tout ! Avec des pages intermédiaires, tout est possible (sauf pour conserver les champs pré-remplis, mais on s'en sort), mais mon rêve est d'éviter ces pages. Je suppose que ceci a dû être fait des centaines de fois, c'est pourquoi j'appelle au secours !
Merci d'avance et bonne soirée,
Paps