Det skal lige siges, at jeg bruger Firefox mens jeg laver det her. Da jeg stødte på problemet første gang, slettede jeg den pågældende session i Firefox (Funktioner|Indstillinger|Vis Cookies) men selv med en "ren" session (sletning via Cookies
og genstartet browser) sker det stadig.
Kan også lige tilføje, at jeg kører det via Wordpress, men har lavet en unik header til side 1, en unik header til side 2 og en unik header til side 3 (længere forklaring).
Ideen er, at jeg har en test bestående af 3 sider og testens rækkefølge hedder side1 --> side2 --> side3.
Koden jeg bøvler med skal sikre, at folk kun deltager én gang OG at de starter ved side1.
I headeren til side1:session_start();
$_SESSION['page1'] = "visited";
echo($_SESSION['page1']);
echo($_SESSION['page2']);
//Tjek om brugeren allerede har gennemført testen
if(isset($_COOKIE["completedSurvey"])){
header("Location:
http://www.onlinekonsulenten.dk/speciale/begraensning/");
}
I headeren til side2:session_start();
//Tjek om brugeren allerede har gennemført testen
if(isset($_COOKIE["completedSurvey"])){
header("Location:
http://www.minwebside.dk/side1/begraensning/");
}
else{
if(isset($_SESSION['page1'])){
//Hvis brugeren har set side1, så må han gerne se side2
if($_SESSION['page1'] == "visited")
{
//Siden vises - der redirectes ikke
$_SESSION['page2'] = "visited"; //Husk at brugeren har set side2
}
else
{
header("Location:
http://www.minwebside.dk/side1/"); //Redirect til side 1
}
}
else
{
header("Location:
http://www.minwebside.dk/side1/"); //Redirect til side 1
}
}
I headeren til side 3:session_start();
if(isset($_SESSION['page1']) && isset($_SESSION['page2'])){
//Hvis brugeren har set side1 OG side2, så må han gerne se side3
if($_SESSION['page1'] == "visited" && $_SESSION['page2'] == "visited")
{
//Brugeren har gennemført testen og dette skal huskes
setcookie("completedSurvey", 'completed', time()+(60*60*24*60), "/");
}
else
{
header("Location:
http://www.minwebside.dk/side1/"); //Redirect til side 1
}
}
else
{
header("Location:
http://www.minwebside.dk/side1/"); //Redirect til side 1
}
Dette er den totale hjemmelavede kode, jeg benytter mig af... Dvs. ingen andre steder opdaterer jeg $_SESSION['page2'] - KUN på side 2.
Der hvor jeg står af er, at selv med med en frisk session, så får "$_SESSION['page2']" tildelt "visited", selv hvis man kun har set side1, bare ved at man genindlæser den.