Page 1 sur 1

Connaitre la page appelante

Posté : 28 juin 2005, 13:46
par guilt92
Bonjour,
je voudrais savoir si il existe un moyen de connaitre la page qui précède la page en cours.

J'ai un formulaire qui se déroule en 5 étapes. Lorsque j'arrive à l'étape 2 par exemple je voudrais savoir si l'utilisateur vient de l'étape 1 en ayant fait suivant ou si il vient de l etape 3 ou il aurait fait précédent.

Merci d'avance.

Posté : 28 juin 2005, 13:50
par zeus
Si tu utilise des formulaires, tu peux mettre

Code : Tout sélectionner

<input name="page_precedente" type="hidden" value="page.php">
et à chaque chargement tester cette variable pour savoir d'où tu viens

Posté : 28 juin 2005, 13:54
par guilt92
J'utilise des formulaires pour aller vers l'étape suivante mais en revanche c'est un lien qui me ramène à la page précédente.

A ce moment la si je fais un $page_prec = $_POST[".."] il va me mettre une erreur si je viens de la page suivante...
De même si dans le lien je met un ?page_prec="..."

Ainsi j'aurai toujours un message d'erreur, non ?

Posté : 28 juin 2005, 13:58
par ouckileou
il y a cette variable aussi :
$_SERVER['HTTP_REFERER'];

http://fr2.php.net/reserved.variables

Posté : 28 juin 2005, 14:05
par guilt92
Effectivement la solution avait l'air pas mal mais d'après le lien que tu m'as laissé :

'HTTP_REFERER'
L'adresse de la page (si elle existe) qui a conduit le client à la page courante. Cette valeur est affectée par le client, et tous les clients ne le font pas. Certains navigateur permettent même de modifier la valeur de HTTP_REFERER, sous forme de fonctionnalité. En bref, ce n'est pas une valeur de confiance.

Du coup j'ai un peu peur...

Posté : 28 juin 2005, 14:08
par ouckileou
et oui, mais bon c'est fun non ? :lol: ça laisse du suspens...

sinon prend l'idée de zeus, et tu fais simplement un test, soit tu récupères $_POST si elle existe, soit $_GET

Posté : 28 juin 2005, 14:11
par zeus
Et pour l'histoire du retour, tu peut faire un petit formulaire qui ne contient que le input hidden qui redirige vers la précédente et le grand formulaire qui contient aussi le input hidden qui redirige vers le suivant

Ou encore, tu passes par des sessions ...

Posté : 28 juin 2005, 14:12
par guilt92
soit tu récupères $_POST si elle existe
Le seul problème de cette méthode c'est que meme si c'est dans un if, si la variable n'existe pas cela laisse un message d'erreur...

Je reconnais que je travail sur fond noir donc cela ne se voit pas mais quand meme ! :D

Posté : 28 juin 2005, 14:12
par guilt92
Oui je pense que je vais remplacer les liens précédent par des form.

Merci

Posté : 28 juin 2005, 14:13
par DroP
si tu fais un
if(empty($_POST['var'])){
cela vérifie l'existance de la variable et ne renvoi pas de message d'erreur[/php]

Posté : 28 juin 2005, 14:14
par zeus
if (isset($_POST["page_precedent"]))
  $page = $_POST["page_precedente"];
elseif (isset($_GET["page_precedente"]))
  $page = $_GET["page_precedente"];
else
  $page = ""

Posté : 28 juin 2005, 14:18
par guilt92
Impeccable merci !