PHP $_SERVER Request
Situation
Hvis en bruger ønsker at komme ind på en adgangsbegrænset side uden at have logind i orden (side A), gemmes oplysning om denne oprindelige side med '$_SERVER REQUEST'. Brugeren omdirigeres til f.eks. logind-side (side B). Efter logind føres brugeren automatisk tilbage til den oprindelige side (side A) og kan nu fortsætte efter at logind er i orden.
Løsning
I stedet for 'header('location: xxx') indsættes i de berørte filer:
Side A
I de filer, der skal loopes fra og tilbage til indsættes:
- Filer uden "header location"
I filer, der skal forblive viste indtil de forlades via f.eks. menutryk, indsættes:
$_SESSION['returside'] = $_SERVER['REQUEST_URI'];
|
- Filer med "header location"
I filer, der automatisk skal forlades, når aktiviteten på dem er udført, indsættes:
$_SESSION['returside'] = $_SERVER['REQUEST_URI'];
header("location: sideB.php"); //den fil, der automatisk skal skiftes til
exit;
|
Side B
I den fil, der udgør loopet (typisk en login-side), indsættes:
if (isset($_SESSION['returside']))
{
$returside = ($_SESSION['returside']);
header("location: $returside");
unset($_SESSION['returside']);
exit;
}
else
{
header("location: index.php");
exit;
}
|
Tricket er at placere navn på fil A i $_SESSION-variabel før siden forlades for at kunne hente den igen, når loopet er færdigt.
|