history.back() en PHP
By Geoffrey on Tuesday 1 February 2005, 11:19 - Coding - Permalink
Pour ceux qui ne connaissent pas, history.back(); est une fonction JavaScript qui permet de revenir en arrière dans l'historique du navigateur. Pour ceux que ça interresse, voilà ma version de la chose en PHP:
function goback($usejs = true, $fallback = 'index', $die = true) {
$referer = getenv('HTTP_REFERER');
if (!empty($referer)) {
header('Location: ' . $referer);
} else {
if ($usejs) {
while (@ob_end_clean());
echo '<script type="text/javascript">history.go(-1)</script>';
} else {
header('Location: ' . $fallback);
}
}
$die && die();
}
Comments
$die && die(); <- nice :)
Salut
Ne serait-ce pas plutôt HTTP_REFERER avec un seul "R" ? :)
Sinon question : pourquoi utiliser getenv et pas $_SERVER directement ?
++ microtom
oui exact c'est REFERER avec un seul R merci :)
sinon pour getenv, j'ai pris cette habitude parceque j'ai lu quelque part que PHP compilé en module (ou CGI je sais plus) ne peuple pas $_ENV, et getenv() sert a récupérer $_SERVER et $_ENV (me semble-t-il). cela dit, je viens d'aller faire un tour sur la doc, et il semblerait que getenv() ne fonctionne pas sous IIS. donc a voir, je vérifierais tout ça quand j'aurai 5 minutes
Vous êtes vraiment bizarres, vous les développeurs !!!! Moi je comprends rien à ce que vous racontez en tout cas !!!
Super ta fonction goback, Geoffrey !
J'ai pas tout saisi du fonctionnement, mais perso, il faut me faut mêtre :
if (empty($referer)) si non cela ne fonctionne pas.
J'essai de rajouter une fonction reload de la page précédente mais sans succès....comment faire ?
MERCI !!!
K.