Connaitre la page appelante

Mammouth du PHP | 1353 Messages

28 juin 2005, 13:46

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.

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

28 juin 2005, 13:50

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
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Mammouth du PHP | 1353 Messages

28 juin 2005, 13:54

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 ?

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

28 juin 2005, 13:58

il y a cette variable aussi :
$_SERVER['HTTP_REFERER'];

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

Mammouth du PHP | 1353 Messages

28 juin 2005, 14:05

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...

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

28 juin 2005, 14:08

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

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

28 juin 2005, 14:11

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 ...
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Mammouth du PHP | 1353 Messages

28 juin 2005, 14:12

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

Mammouth du PHP | 1353 Messages

28 juin 2005, 14:12

Oui je pense que je vais remplacer les liens précédent par des form.

Merci

Eléphant du PHP | 91 Messages

28 juin 2005, 14:13

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]
YaTTa :D

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

28 juin 2005, 14:14

if (isset($_POST["page_precedent"]))
  $page = $_POST["page_precedente"];
elseif (isset($_GET["page_precedente"]))
  $page = $_GET["page_precedente"];
else
  $page = ""
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Mammouth du PHP | 1353 Messages

28 juin 2005, 14:18

Impeccable merci !