[RESOLU] Visite unique de page

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] Visite unique de page

Re: Visite unique de page

par ZeusxDuff » 19 juil. 2016, 14:26

Merci beaucoup pour votre aide, ça marche désormais! :)

Re: Visite unique de page

par Ryle » 18 juil. 2016, 17:33

Bonjour,

session_start() a uniquement pour effet de démarrer le moteur de session et te permettre d'utiliser le tableau $_SESSION d'une page à l'autre. Mais si tu ne consignes rien dans ce tableau, il ne sera pas non plus présent dans la page suivante :)

Remplace ta variable $effectué par $_SESSION['effectue'] (et évite les accents dans les noms de variables ou de fonctions), et ça devrait fonctionner :)

Pense également à effacer ou modifier la variable de session si l'utilisateur doit pouvoir revenir sur la page pour un autre achat ;)

Re: Visite unique de page

par ZeusxDuff » 17 juil. 2016, 21:20

Tu veux dire que pour conserver les variables il ne suffi pas d'un session_start() ? Il faut en plus de cela les actualiser?

Re: Visite unique de page

par or 1 » 15 juil. 2016, 18:00

session_start() suppose qu'il sera fait usage des sessions ensuite, une manière de conserver une info d'une page à l'autre, or il n'y a pas d'utilisation des sessions dans le reste du code.

Visite unique de page

par ZeusxDuff » 15 juil. 2016, 17:09

Bonjour,
sur mon site, j'ai une page en php qui permet l'achat d'objet. Une fois que l'utilisateur à effectué son achat, un message de confirmation s'affiche et il est invité à se rediriger sur une autre page.
Seulement voilà, il y a un soucis! Si cet utilisateur clique sur le bouton précédent après avoir été redirigé, il regagne la page d'achat. Son argent ne lui est pas débité une seconde fois mais de mon côté il est indiqué qu'il a acheté 2 fois l'article (ce qui est très problématique car il n'aura payé le montant que d'une seul article!).

Je voudrai donc savoir comment faire pour que cette page ne puisse pas être revisité une seconde fois.
J'ai essayé de rajouté une variable qui, une fois la page visitée, prendrai la valeur 1. La page serai donc visitable seulement si la variable est différente de 1. Mais ça ne fonctionne pas, j'ai du me rater quelque part.
<?php

session_start();

if ($effectué != 1) {
//MA PAGE
    if ($points >= $prix) {
        $effectué = 1;
        $erreur = "Votre achat a bien été effectué.";
        $points = $points - $prix;
//RESTE DE MA PAGE
}
}
?>


La page sur laquelle l'utilisateur est redirigé:
<?php
session_start();
?>

//PAGE EN HTML