Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Conservation d'une page d'entrée

9 réponses
Avatar
Yannick VOYEAUD
Bonsoir,

Soit deux pages A et B qui sont deux entrées différentes sur un même site.
Les deux pages appellent la même page 1 qui conduit à 2 jusqu'à n

Comment faire pour que le visiteur qui demande à revenir à la page
d'accueil se retrouve sur la page (A ou B) par laquelle il est arrivé
sur le site?

Merci de me faire des exemples commentés

Amitiés

--
Yannick VOYEAUD
Nul n'a droit au superflu tant que chacun n'a pas son nécessaire
(Camille JOUFFRAY 1841-1924, maire de Vienne)
http://www.voyeaud.org

9 réponses

Avatar
Denis Beauregard
Le Sat, 20 Oct 2012 01:43:49 +0200, Yannick VOYEAUD
écrivait dans fr.comp.lang.php:

Bonsoir,

Soit deux pages A et B qui sont deux entrées différentes sur un même site.
Les deux pages appellent la même page 1 qui conduit à 2 jusqu'à n

Comment faire pour que le visiteur qui demande à revenir à la page
d'accueil se retrouve sur la page (A ou B) par laquelle il est arrivé
sur le site?

Merci de me faire des exemples commentés



En théorie, la page précédente serait la "refer" ou quelque chose du
genre. En pratique, je noterais la page d'entrée dans un cookie si le
cookie est vide.


Denis
Avatar
Denis Beauregard
Le Fri, 19 Oct 2012 20:22:58 -0400, Denis Beauregard
écrivait dans
fr.comp.lang.php:

Le Sat, 20 Oct 2012 01:43:49 +0200, Yannick VOYEAUD
écrivait dans fr.comp.lang.php:

Bonsoir,

Soit deux pages A et B qui sont deux entrées différentes sur un même site.
Les deux pages appellent la même page 1 qui conduit à 2 jusqu'à n

Comment faire pour que le visiteur qui demande à revenir à la page
d'accueil se retrouve sur la page (A ou B) par laquelle il est arrivé
sur le site?

Merci de me faire des exemples commentés



En théorie, la page précédente serait la "refer" ou quelque chose du
genre. En pratique, je noterais la page d'entrée dans un cookie si le
cookie est vide.



Du code assez simple en fait pour le retour à la page précédente.

<?php
echo '<a href="' . $_SERVER["REFERER"] . '">Retour</a>';
?>

Pour la 1re page sur le site, ce n'est pas difficile il me semble.


Denis
Avatar
Yannick VOYEAUD
Le 20/10/2012 03:02, Denis Beauregard a écrit :
En théorie, la page précédente serait la "refer" ou quelque chose du
genre. En pratique, je noterais la page d'entrée dans un cookie si le
cookie est vide.



Du code assez simple en fait pour le retour à la page précédente.

<?php
echo '<a href="' . $_SERVER["REFERER"] . '">Retour</a>';
?>

Pour la 1re page sur le site, ce n'est pas difficile il me semble.


Denis




Bonsoir Denis, (enfin bonjour pour toi)

Merci de ce petit code que je vais approfondir de suite. Mes excuses
pour le retard à la réponse.

Amitiés

--
Yannick VOYEAUD
Nul n'a droit au superflu tant que chacun n'a pas son nécessaire
(Camille JOUFFRAY 1841-1924, maire de Vienne)
http://www.voyeaud.org
Avatar
Yannick VOYEAUD
Le 25/10/2012 18:59, Yannick VOYEAUD a écrit :
Le 20/10/2012 03:02, Denis Beauregard a écrit :
En théorie, la page précédente serait la "refer" ou quelque chose du
genre. En pratique, je noterais la page d'entrée dans un cookie si le
cookie est vide.



Du code assez simple en fait pour le retour à la page précédente.

<?php
echo '<a href="' . $_SERVER["REFERER"] . '">Retour</a>';
?>

Pour la 1re page sur le site, ce n'est pas difficile il me semble.


Denis




Bonsoir Denis, (enfin bonjour pour toi)

Merci de ce petit code que je vais approfondir de suite. Mes excuses
pour le retard à la réponse.

Amitiés




Re,

Voici ce que j'ai fais:
Page A et B
## Là où tu veux mettre lien vers la page 1 commune
<a href="Page_1.php" >Page 1</a>


Page 1
<?php
setcookie('page_arr', $_SERVER['HTTP_REFERER'], (time() +3600 ));
?>

## lien vers la page 2
<a href="test2.php" >page 2</a>

## lien de retour vers page A ou B selon le cas
<?php
$url2=$_COOKIE["page_arr"];
echo $url2;
echo "<a href="$url2"/>Retour<//a/>";
?>


Page 2 à n
## Lien vers page précédente
Tu sais faire (enfin j'espère)

## lien de retour vers la page d'accueil
<?php
$url2=$_COOKIE["page_arr"];
echo $url2;
echo "<a href="$url2"/>Retour vers page d'accueil<//a/>";
?>

## Lien vers la page suivante
Tu sais faire (enfin j'espère)


Amitiés

--
Yannick VOYEAUD
Nul n'a droit au superflu tant que chacun n'a pas son nécessaire
(Camille JOUFFRAY 1841-1924, maire de Vienne)
http://www.voyeaud.org
Avatar
Denis Beauregard
Le Thu, 25 Oct 2012 22:15:11 +0200, Yannick VOYEAUD
écrivait dans fr.comp.lang.php:

Voici ce que j'ai fais:
Page A et B
## Là où tu veux mettre lien vers la page 1 commune
<a href="Page_1.php" >Page 1</a>


Page 1
<?php
setcookie('page_arr', $_SERVER['HTTP_REFERER'], (time() +3600 ));
?>



plutôt dans page A (ou B) :

setcookie('page_arr', "page-A.php"

Sinon, à la 2e page, on revient à la page 1 et non A ou B


Denis
Avatar
Yannick VOYEAUD
Le 26/10/2012 04:44, Denis Beauregard a écrit :
Le Thu, 25 Oct 2012 22:15:11 +0200, Yannick VOYEAUD
écrivait dans fr.comp.lang.php:

Voici ce que j'ai fais:
Page A et B
## Là où tu veux mettre lien vers la page 1 commune
<a href="Page_1.php" >Page 1</a>


Page 1
<?php
setcookie('page_arr', $_SERVER['HTTP_REFERER'], (time() +3600 ));
?>



plutôt dans page A (ou B) :

setcookie('page_arr', "page-A.php"

Sinon, à la 2e page, on revient à la page 1 et non A ou B


Denis




Bonjour Denis,

Là tu me fais douter car ce que j'ai écris a bien marché dans les tests
$_SERVER['HTTP_REFERER'] enregistre la page d'où tu viens donc c'est
bien cela que l'on cherche.

Le truc c'est que l'on est OBLIGÉ de passer par des cookies du fait que
certains navigateurs n'interprètent pas correctement cette valeur. Donc
en entrant cette valeur dans un cookie elle est conservée obligatoirement.

C'est dommage j'ai détruis mes pages d'exemple que j'avais faites sinon
je te les aurais transmises avec plaisir. Je cherchais cette solution
pour un copain qui ne trouvais pas son bonheur et qui m'a demandé son aide.

Amitiés à la belle province

--
Yannick VOYEAUD
Nul n'a droit au superflu tant que chacun n'a pas son nécessaire
(Camille JOUFFRAY 1841-1924, maire de Vienne)
http://www.voyeaud.org
Avatar
Denis Beauregard
Le Fri, 26 Oct 2012 15:56:39 +0200, Yannick VOYEAUD
écrivait dans fr.comp.lang.php:

Le 26/10/2012 04:44, Denis Beauregard a écrit :
Le Thu, 25 Oct 2012 22:15:11 +0200, Yannick VOYEAUD
écrivait dans fr.comp.lang.php:

Voici ce que j'ai fais:
Page A et B
## Là où tu veux mettre lien vers la page 1 commune
<a href="Page_1.php" >Page 1</a>


Page 1
<?php
setcookie('page_arr', $_SERVER['HTTP_REFERER'], (time() +3600 ));
?>



plutôt dans page A (ou B) :

setcookie('page_arr', "page-A.php"

Sinon, à la 2e page, on revient à la page 1 et non A ou B


Denis




Bonjour Denis,

Là tu me fais douter car ce que j'ai écris a bien marché dans les tests
$_SERVER['HTTP_REFERER'] enregistre la page d'où tu viens donc c'est
bien cela que l'on cherche.



La première fois, oui, pas la 2e !

Supposons ce parcours, si toutes les pages ont ce mécanisme

Page Inconnue

Page A
Cookie = Page Inconnue

Page 1
Cookie = Page A

Page 2
Cookie = Page 1

Page 3
Cookie = Page 2

Page 4
Cookie = Page 3

On remonte via le mécanisme à la page 3

Page 3
Cookie = Page 4

Supposons ce parcours, si seule la page A contient ce mécanisme

Page Inconnue

Page A
Cookie = Page Inconnue

Page 1
Cookie = Page Inconnue

Page 2
Cookie = Page Inconnue

Page 3
Cookie = Page Inconnue

Page 4
Cookie = Page Inconnue

On remonte via le mécanisme à la page inconnue


Le truc c'est que l'on est OBLIGÉ de passer par des cookies du fait que
certains navigateurs n'interprètent pas correctement cette valeur. Donc
en entrant cette valeur dans un cookie elle est conservée obligatoirement.



D'accord, mais il faut choisir quelle valeur est conservée.
Le referer est la page précédente et non la page courante. Donc, pour
reculer de UNE page, c'est bon, mais pas pour revenir à l'entrée du
site.

Par ailleurs, il faudrait ajouter un test pour avoir la page A si le
cookie n'est pas défini.

C'est dommage j'ai détruis mes pages d'exemple que j'avais faites sinon
je te les aurais transmises avec plaisir. Je cherchais cette solution
pour un copain qui ne trouvais pas son bonheur et qui m'a demandé son aide.

Amitiés à la belle province




Merci


Denis
Avatar
Yannick VOYEAUD
Le 26/10/2012 16:34, Denis Beauregard a écrit :
Le Fri, 26 Oct 2012 15:56:39 +0200, Yannick VOYEAUD
écrivait dans fr.comp.lang.php:

Le 26/10/2012 04:44, Denis Beauregard a écrit :
Le Thu, 25 Oct 2012 22:15:11 +0200, Yannick VOYEAUD
écrivait dans fr.comp.lang.php:

Voici ce que j'ai fais:
Page A et B
## Là où tu veux mettre lien vers la page 1 commune
<a href="Page_1.php" >Page 1</a>


Page 1
<?php
setcookie('page_arr', $_SERVER['HTTP_REFERER'], (time() +3600 ));
?>



plutôt dans page A (ou B) :

setcookie('page_arr', "page-A.php"

Sinon, à la 2e page, on revient à la page 1 et non A ou B


Denis




Bonjour Denis,

Là tu me fais douter car ce que j'ai écris a bien marché dans les tests
$_SERVER['HTTP_REFERER'] enregistre la page d'où tu viens donc c'est
bien cela que l'on cherche.



La première fois, oui, pas la 2e !

Supposons ce parcours, si toutes les pages ont ce mécanisme

Page Inconnue

Page A
Cookie = Page Inconnue

Page 1
Cookie = Page A

Page 2
Cookie = Page 1

Page 3
Cookie = Page 2

Page 4
Cookie = Page 3

On remonte via le mécanisme à la page 3

Page 3
Cookie = Page 4

Supposons ce parcours, si seule la page A contient ce mécanisme

Page Inconnue

Page A
Cookie = Page Inconnue

Page 1
Cookie = Page Inconnue

Page 2
Cookie = Page Inconnue

Page 3
Cookie = Page Inconnue

Page 4
Cookie = Page Inconnue

On remonte via le mécanisme à la page inconnue


Le truc c'est que l'on est OBLIGÉ de passer par des cookies du fait que
certains navigateurs n'interprètent pas correctement cette valeur. Donc
en entrant cette valeur dans un cookie elle est conservée obligatoirement.



D'accord, mais il faut choisir quelle valeur est conservée.
Le referer est la page précédente et non la page courante. Donc, pour
reculer de UNE page, c'est bon, mais pas pour revenir à l'entrée du
site.

Par ailleurs, il faudrait ajouter un test pour avoir la page A si le
cookie n'est pas défini.

C'est dommage j'ai détruis mes pages d'exemple que j'avais faites sinon
je te les aurais transmises avec plaisir. Je cherchais cette solution
pour un copain qui ne trouvais pas son bonheur et qui m'a demandé son aide.

Amitiés à la belle province




Merci


Denis




Re,

Le visiteur arrive sur A ou B (son chemin antérieur ne nous intéresse
pas du tout)

De là il va sur 1.
C'est à ce moment que je veux me rappeler de quelle page je viens donc
la valeur est bien le referer, donc je crée le cookie avec cette valeur.
Normalement la valeur enregistrée est l'adresse complète car la variable
est remplacée par la valeur dans le cookie.
Le visiteur décide de revenir en arrière il revient sur A en utilisant
le lien qui, lui, appelle le cookie.
Le visiteur décide de passer à 2 et de revenir directement à SON accueil
le lien prend en compte la valeur enregistrée dans le cookie qui est
bien A ou B.

On veut savoir comment on arrive sur 1 et c'est bien cette valeur qui
est prise en compte dans le cookie. Par conséquent c'est en page 1 que
l'on génère le cookie.

Je verrais bien si le copain me dit que cela ne marche pas je
reprendrais la recherche mais j'ai testé pourtant avec 3 pages 1, 2 et n
et cela donnait bien le résultat escompté.

Amitiés

--
Yannick VOYEAUD
Nul n'a droit au superflu tant que chacun n'a pas son nécessaire
(Camille JOUFFRAY 1841-1924, maire de Vienne)
http://www.voyeaud.org
Avatar
SAM
Le 26/10/12 15:56, Yannick VOYEAUD a écrit :

Là tu me fais douter car ce que j'ai écris a bien marché dans les tests
$_SERVER['HTTP_REFERER'] enregistre la page d'où tu viens donc c'est
bien cela que l'on cherche.



Non on cherche à enregistrer si on est venu de A ou de B
donc le plus simple :
- A dit au cookie : 'A'
- et B lui dit : 'B'

Le truc c'est que l'on est OBLIGÉ de passer par des cookies du fait que
certains navigateurs n'interprètent pas correctement cette valeur.



N'importe quoi, les navigateurs savent bien d'où ils viennent, juste ils
ont ou non l'envie de le dire au serveur lorsque celui-ci demande le
REFERER.

Donc, oui, l'idée du referer est une mauvaise idée.

L'obligation du cookie vient du fait que tu ne sais pas jusqu'à quel
niveau de l'historique du navigateur tu dois remonter pour revenir à A
(ou B) et que ce cookie va te mémoriser ce A (ou B).


--
Stéphane Moriaux avec/with iMac-intel