Obtenir un bouton retour compris par tout navigateur

Eléphanteau du PHP | 23 Messages

14 mars 2011, 16:47

Bonjour voilà j'ai sur mon site des boutons retour à la page précédente ils fonctionnent correctement sous firefox mais pas sous le dernier IE alors ma question est toute simple quel est le code qui permettra à tout navigateur d'exécuter correctement l'action demandée (sachant que le javascript avec go -1 ne fonctionne pas correctement non plus sous le dernier IE) ?

Voici le code actuel de mon bouton :
<div class="bouton-retour" onclick="<?php echo $_SERVER['HTTP_REFERER'] ?>"><a href="<?php echo $_SERVER['HTTP_REFERER'] ?>">Retour</a></div>

Eléphant du PHP | 241 Messages

14 mars 2011, 17:09

Salut,
Le HTTP_REFERER n'est pas du tout fiable, il peut être vide ou modifié.
Le mieux est le history.go(-1) ou le history.back() (qui marche très bien sur IE8 et IE9 de mon côté d'ailleur :? )

Sinon tu peux toujours mettre dans une variable de SESSION la page précédente où été l'internaute, et l'afficher dans le lien du bouton retour.

Eléphanteau du PHP | 23 Messages

14 mars 2011, 17:27

Salut,
Le HTTP_REFERER n'est pas du tout fiable, il peut être vide ou modifié.
Le mieux est le history.go(-1) ou le history.back() (qui marche très bien sur IE8 et IE9 de mon côté d'ailleur :? )

Sinon tu peux toujours mettre dans une variable de SESSION la page précédente où été l'internaute, et l'afficher dans le lien du bouton retour.
Il me semble préférable de stocker dans une variable de session la page précédente car history.back() ne fonctionne pas parfaitement sous IE même sous le vôtre, petit exemple :

  1. A l'aide de votre navigateur IE, rendez-vous sur cette page : http://lefebvresbook.monespace.net/infographie.php ;
  • Cliquez sur une des créations pour voir les détails ;
  • Cliquez sur le bouton retour...
[/b]

Là vous vous retrouvez sur la page http://lefebvresbook.monespace.net/portfolio.php au lieu de celle-ci http://lefebvresbook.monespace.net/infographie.php !

Maintenant sachant que les 2 solutions ne fonctionnent pas comment puis-je stocker ces valeurs en session si je ne peux pas passer par ces fonctions pour récupérer l'adresse de la page précédente ?
Modifié en dernier par Lefebvresdesigns le 07 juin 2011, 11:19, modifié 2 fois.

Eléphant du PHP | 241 Messages

14 mars 2011, 17:43

Effectivement, cela ne marche pas !
J'ai testé en local et sur des sites où il y a history.go(-1) et ca marche très bien mais sur ton site non...étrange :|

Eléphanteau du PHP | 23 Messages

14 mars 2011, 17:51

Effectivement, cela ne marche pas !
J'ai testé en local et sur des sites où il y a history.go(-1) et ca marche très bien mais sur ton site non...étrange :|
J'obtiens le même effet avec history.go(-1)

Eléphant du PHP | 241 Messages

14 mars 2011, 18:06

Quand tu mets avec history.back ou en -1, tu l'écris comme ceci ?
<div class="bouton-retour" onclick="history.back()"><a onclick="history.back()">Retour</a></div>
ou comme ceci ?
<div class="bouton-retour" onclick="history.back()">Retour</div>
Car effectivement, dans le premier cas IE va exécuter les deux codes, il va donc faire 2 retour au lieu d'un !

Eléphanteau du PHP | 23 Messages

14 mars 2011, 18:15

Quand tu mets avec history.back ou en -1, tu l'écris comme ceci ?
<div class="bouton-retour" onclick="history.back()"><a onclick="history.back()">Retour</a></div>
ou comme ceci ?
<div class="bouton-retour" onclick="history.back()">Retour</div>
Car effectivement, dans le premier cas IE va exécuter les deux codes, il va donc faire 2 retour au lieu d'un !
Comme ceci (avec double écriture car le <a> ne fait pas toute la hauteur du bouton) ce qui normalement devrait être bon hors cela ne fonctione pas :

<div class="bouton-retour" onclick="history.back()"><a href="javascript:history.back()">Retour</a></div>

(ici je ne peux mettre le code au format code (a l'aide des balises prévues pour '
') sinon dans ce forum il affiche un #48 ou truc du genre à la place des ':' )

Eléphanteau du PHP | 23 Messages

14 mars 2011, 19:38

Voilà mon problème est résolu, suite au constat que lorsque je cliquais sur la zone non concernée par le <a> mais tout en restant sur le le bouton le navigateur IE me redirigeais correctement vers la page précédente, j'ai remplacé le <a> par un <u> (car le code était souligné, j'aurais pu faire un <span> avec une autre classe entre autres...), j'ai appliqué sur ce <u> les mêmes classes que sur le <a>.

:D Et hop ! ça fonctionne ! :D

Voici le code en question :
<div class="bouton-retour" onclick="history.back()"><u>Retour</u></div>
C'est bon à savoir pour tous ceux qui se retrouvent dans la même situation ou le <a href="javascript:history.back()"> ne fonctionne pas !

Mot de la fin : Internet Explorer est une vraie "dobe" pour être gentil !

Eléphant du PHP | 241 Messages

14 mars 2011, 20:55

En même temps c'était bizarre de mettre un lien vers la page précédente à l'intérieur d'une div qui au clique renvoyée elle aussi vers la page précédente :mrgreen: :mrgreen:

Eléphanteau du PHP | 23 Messages

14 mars 2011, 21:03

En même temps c'était bizarre de mettre un lien vers la page précédente à l'intérieur d'une div qui au clique renvoyée elle aussi vers la page précédente :mrgreen: :mrgreen:
c'était pour le javascript j'ai entendu dire qu'il était parfois non interprété

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

14 mars 2011, 23:25

effectivement il n'est pas interprété quand le client le désactive, on qu'il ne l’interprète pas (de plus en plus rare :) )

@+
Il en faut peu pour être heureux ......

Mammouth du PHP | 568 Messages

24 mars 2011, 00:18

Je pense que l'idéal pour se genre de lien, c'est de créer un gestionnaire d'url qui va stocker les n dernière urls visitées de ton application/site, ce qui te permet d'afficher un lien avec un href pointant sur l'avant dernière url visité.

C'est ce que je ferais plutôt.

Eléphanteau du PHP | 23 Messages

16 avr. 2011, 12:58

Je pense que l'idéal pour se genre de lien, c'est de créer un gestionnaire d'url qui va stocker les n dernière urls visitées de ton application/site, ce qui te permet d'afficher un lien avec un href pointant sur l'avant dernière url visité.

C'est ce que je ferais plutôt.
Salut, peux tu m'expliquer comment tu aurais fais (le code) pour stoker ces URLs ce serait intéressant !

Mammouth du PHP | 568 Messages

19 avr. 2011, 23:04

Sans te donner le code, j'aurais créer un registre/historique d'urls, genre qui garde les dix dernières urls avec un système de premier entré / premier sorti comme ça tu n'a plus qu'a faire un echo de la valeurs que tu veux (dernière, avant dernière page).

Ca te permet plein de liberté du coup.

Eléphanteau du PHP | 23 Messages

24 avr. 2011, 12:37

Sans te donner le code, j'aurais créer un registre/historique d'urls, genre qui garde les dix dernières urls avec un système de premier entré / premier sorti comme ça tu n'a plus qu'a faire un echo de la valeurs que tu veux (dernière, avant dernière page).

Ca te permet plein de liberté du coup.
Salut,
Comment tu les récupères aussi ces urls ?