[Résolu] Problème avec php_self et query_string

Nouveau WRInaute
Bonjour à tous !

J'essaie de mettre en place un système de retour à la page précédente et pour ce faire, j'utilise une variable de session qui prend sa valeur comme suit :
Code:
if (isset($_SERVER['QUERY_STRING']))
{
    $_SESSION['precedent'] = $_SERVER['PHP_SELF']."?".$_SERVER['QUERY_STRING'];
}
else
{
    $_SESSION['precedent'] = $_SERVER['PHP_SELF'];
}
Et dans la page sur laquelle je souhaite placer mon retour à la page précédente, j'écris mon lien de cette façon :
Code:
<a href="<?php echo $_SESSION['precedent'];?>">Retour à la page précédente</a>
Je teste en local (wamp5 mais avec le plugin php4) et tout fonctionne comme je le souhaite et mon lien prend bien la forme
Code:
<a href="http://localhost/monsite/index.php?">Retour à la page précédente</a>
par exemple
Par contre, une fois en ligne, je me retrouve avec un lien
Code:
<a href="http://www.example.com/common/404.php">Retour à la page précédente</a>
common étant le nom d'un des répertoires de mon arborescence et 404.php étant ma page personnalisée d'erreur 404.

L'un d'entre vous peut-il me dire dans quelle direction je dois chercher la cause du problème ?
Merci d'avance.
 
Nouveau WRInaute
Bonjour,

Pourquoi ne pas utiliser l'index HTTP_REFERER ?

As tu l'affection de la variable session dans la page 404 ?
 
Nouveau WRInaute
3Crea a dit:
Bonjour,

Pourquoi ne pas utiliser l'index HTTP_REFERER ?

As tu l'affection de la variable session dans la page 404 ?

Je n'utilise pas HTTP_REFERER parce qu'il ne me donne pas le résultat escompté.
En effet, si j'utilise HTTP_REFERER, en partant du site de mon profil (puisque c'est de celui-là qu'il s'agit), si je clique sur la photo d'un bijou pour en avoir le détail, qu'à partir de la page détail, j'ajoute ce bijou au panier, que du panier, je reviens en arrière (donc à la page détail) et que de là, je fais à nouveau un retour en arrière, je me retrouve une fois de plus dans le panier.
Par contre, avec ma méthode, j'obtiens ce que je veux en local en tout cas.

Dans ma page 404.php, je ne fais aucunement référence à ma variable $_SESSION['precedente']

Merci à toi pour cette première réaction.
 
Nouveau WRInaute
thegwil a dit:
Dans ma page 404.php, je ne fais aucunement référence à ma variable $_SESSION['precedente']
Autant pour moi :oops:
J'utilisais bien ce code (inutilement d'ailleurs)
Code:
if (isset($_SERVER['QUERY_STRING']))
{
    $_SESSION['precedent'] = $_SERVER['PHP_SELF']."?".$_SERVER['QUERY_STRING'];
}
else
{
    $_SESSION['precedent'] = $_SERVER['PHP_SELF'];
}
dans ma page 404.php et il y avait comme qui dirait un petit conflit avec mon htaccess. J'ai donc supprimé le code et tout est rentré dans l'ordre. Plus qu'à comprendre pourquoi... un autre jour... peut-être.
 
Discussions similaires
Haut