detection de l'url de la page précedement visitée

Mammouth du PHP | 843 Messages

18 nov. 2006, 07:42

salut à tous :)

je voulai savoir si il était possible de récuperer le nom de la page depuis laquelle le visiteur arrive sur la page en cours de mon site :-k

en claire, si le visiteur vient de google par exemple, j'aimerai pouvoir récuperer le nom de cette page (ou l'url)

si quelqu'un à une idée ;)

merci d'avance.
:: contactez moi par MP ::
:non: NON au language SMS sur les forums :non:

Mammouth du PHP | 843 Messages

18 nov. 2006, 09:32

je vient de voir dans la doc qu'il existe une variable prédéfini HTTP_REFERER.

celle-ci contient l'url de la page précedement visité mais la doc précise que ce n'est pas une valeur sûr... :cry:

si quelqu'un a une autre idée ;)
:: contactez moi par MP ::
:non: NON au language SMS sur les forums :non:

Eléphant du PHP | 135 Messages

18 nov. 2006, 11:35

Bonjour,

j'ai l'impression que tu devras t'en contenter.

dit toi que tout ce qui vient de l'utilisateur n'est pas sûr :)

Bonne journée :)

Mammouth du PHP | 843 Messages

18 nov. 2006, 15:21

y'a vraiment pas autre chose?
même pas un truc du genre récuperer l'url de cette page depuis l'historique... :-k

je doit definir une condition du genre:
if(isset($SESSION['machin']) && /* page précedente != page en cour*/ ) {
unset($SESSION['machin']);
} 
j'ai une variable de session qui perciste si l'utilisateur quitte un formulaire avant que celui-ci n'aboutisse. le problème est que si il revient par la suite sur ce formulaire, il faut imperativement efface cette variable de session avant de traiter la page.

si quelqu'un a une idée de genie [-o<
:: contactez moi par MP ::
:non: NON au language SMS sur les forums :non:

ViPHP
ViPHP | 1961 Messages

18 nov. 2006, 16:20

Bonjour,

Si tu veux savoir de quelle page il vient quant il arrive sur ton site Erazer t'a répondu.
Par contre si ce qui t'interresse est de voir sa navigation dans ton site n'oublie pas qu'une variable de session se gère exactement comme un tableau en PHP.

Tu peux donc gérer
$_SESSION['pages'][] = $_SERVER['PHP_SELF']
En parcourrant ce tableau tu peux savoir s'il a ou pas visté telle ou telle page.
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein

Mammouth du PHP | 843 Messages

19 nov. 2006, 12:39

En fait je cherche à effacer les variables de session si la page précédente n'est pas la même que celle du formulaire en question...

pour le cas ou cela ne viendrai pas de mon site, la variable de session "page_precedente" n'existe donc pas.

je pense faire un truc du genre:
if(isset($SESSION['machin'] && ($SERVER['PHP_SELF'] != $SESSION['page_precedente'] || empty($SESSION['page_precedente'])))
{
unset($SESSION['machin']);
}
je vais faire des essais pour voir...
:: contactez moi par MP ::
:non: NON au language SMS sur les forums :non:

Mammouth du PHP | 843 Messages

20 nov. 2006, 04:49

je vais laisser tomber car HTTP_REFERER n'est pas une valeur sur et en faite j'en avait imperativement besoin... :(

merci quand ;)
:: contactez moi par MP ::
:non: NON au language SMS sur les forums :non:

Mammouth du PHP | 1776 Messages

20 nov. 2006, 09:09

Mouef...alors que tu as la solution...
En tout début de tous tes script, juste après le session_start(), tu teste si ta variable de session contenant la page visité existe ou non. si non, tu la définis.
En fin de tous tes scripts, tu donne dans ta variable de session l'url de la page courante. Cela te permet d'avoir une variable de confiance recuperée par autre chose que http_referer...

Mammouth du PHP | 843 Messages

20 nov. 2006, 10:08

oui mais le problème dans mon cas vient du fait que si l'utilisateur va faire un tour sur un autre site, on a alors en session la variable contenant l'url du formulaire (a moins que ce dernier ne ferme son navigateur)...
si celui-ci revient directement sur le formulaire (via son historique par exemple), alors l'url est la même que celle du formulaire et la on repart avec les même variables de session :?

mais peut être que j'ai mal saisi quelque chose... :-k
:: contactez moi par MP ::
:non: NON au language SMS sur les forums :non:

Mammouth du PHP | 1511 Messages

20 nov. 2006, 10:39

HTTP_REFERER est retourne seulement la page depuis laquelle a étée appellée la page ou est appellée la variable.
Donc si l'utilisateur va sur une autre page avec un autre onglet de firefox ou autre, ca ne changera rien.

Mammouth du PHP | 1776 Messages

20 nov. 2006, 12:45

Si je comprenais le but de ta démarche je pourrai t'aider mais là... :roll:

Mammouth du PHP | 843 Messages

20 nov. 2006, 19:20

Ce n'est pas grave, je suis en train de tout refaire car j'était partis sur une mauvaise idée...

Mais j'aurrai quand même appris pas mal de chose de cette erreur ;)

merci quand même à vous tous :)
:: contactez moi par MP ::
:non: NON au language SMS sur les forums :non: