logo   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.





















x
x