[RESOLU] empêcher l'actualisation de la page et donc de la requete

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] empêcher l'actualisation de la page et donc de la requete

Re: empêcher l'actualisation de la page et donc de la requet

par sirakawa » 29 août 2014, 14:37

1 Renseignes une variable de session avec le résultat du traitement. ;)
2 Tu la récupères sur le script affichage, tu l'affiches, puis tu la supprimes.
Comme ça en cas de rafraichissement plus de message/popup.
1 Dans le script où a lieu le traitement tu crées une variable de session
<?PHP
session_start();
/*...*/
if (isset($_SESSION['enregistre'])
{
$enregistre = $_SESSION['enregistre'])=;
}
else
{
$enregistre = "N3;
}

if ($enregistre == "N")
{
traitement normal;*si tout s'est bien passé
$SESSION[enregistre'] = "O";
sinon
$SESSION[enregistre'] = "N";
}
else
{
popup "pas deux fois";
}
?>

2 dans le script affichage:
<?PHP
session_start();
/*...*/

$enregistre = $SESSION[enregistre'];
suivant la valeur tu affiches le popup adapté

Re: empêcher l'actualisation de la page et donc de la requet

par tycoons » 29 août 2014, 14:34

Nickel merci bien

Re: empêcher l'actualisation de la page et donc de la requet

par ynx » 29 août 2014, 14:22

Pour afficher un message de confirmation, tu peux ajouter un paramètre get dans l'url de la redirection après le traitement :
// fin du traitement du formulaire
header('formulaire.php?succes=1');
exit();
Puis dans la page où tu affiche de le formulaire, tu affiches le message de confirmation si ce paramètre est présent :
if (!empty($_GET['succes'])) {
    echo 'Formulaire traité';
}
Bonne journée

Re: empêcher l'actualisation de la page et donc de la requet

par tycoons » 29 août 2014, 13:55

salut xTG,
tu peut me donner un exemple que je comprenne comment on gère sa stp
avant quand je mettais tous dans la même page je faisait sa avec try succes ou catch erreur
mais la sa fonctionne toujours mais sur la page traitement est nom pas sur la même page.
je suis pas familier avec les session encore d'ou mas demande d'exemple
session start sur les deux page mais après suis larguer

Re: empêcher l'actualisation de la page et donc de la requet

par xTG » 29 août 2014, 13:37

Renseignes une variable de session avec le résultat du traitement. ;)
Tu la récupères sur le script affichage, tu l'affiches, puis tu la supprimes.
Comme ça en cas de rafraichissement plus de message/popup.

Re: empêcher l'actualisation de la page et donc de la requet

par tycoons » 29 août 2014, 13:13

salut ynx,
C'est toute à fait sa donc pour palier a sa j'ai donc créer ma page de traitement d'un coté et je renvoi sur la page d'affichage par contre je voudrai mettre un pop qui dit que l'opération c'est bien traiter une idée?
arf je croit que je suis pas très claire
donc je m'explique j'ai 2 page traitement et affichage
affichage contiens un formulaire caché et traitement sa parle de lui même.
je fait donc un header location dans traitement mais je voudrais que arrive sur la page de destination il me dise ok ou c'est pas bon

Re: empêcher l'actualisation de la page et donc de la requet

par ynx » 29 août 2014, 12:25

Salut,

Effectivement si on rafraichit une page juste après avoir envoyé un formulaire en méthode POST, le navigateur nous indique que les données vont être à nouveau renvoyées (on relance en fait la dernière requête http faite par le navigateur, et celle-ci correspond à une requête POST dû à l'envoie de nos données via le formulaire).

Le solution la plus utilisé est de faire une redirection après le traitement du formulaire vers la page de résultat (qui peut être la page du formulaire). En effectuant cette redirection, la dernière requête du navigateur correspond alors à une requête http GET classique, et le rafraichissement de la page ne nous indiquera aucun message.

Bonne journée

empêcher l'actualisation de la page et donc de la requete

par tycoons » 29 août 2014, 11:50

Salut à tous,
J'ai encore un petit souci
j'ai une page avec un formulaire cacher de type hidden mais des que je fait un f5 il me refait la requête je voudrai empêcher ce fonctionnement.
idem pour le retour en arrière du navigateur si quelque peu prendre un peu de temps pour m'expliquer
merci à tous