Avatar billede aitnemed Novice
03. februar 2011 - 12:44 Der er 4 kommentarer og
1 løsning

Redirect af eksterne links til udvalgte websider (i Wordpress)

Hej folkens

Jeg har en hjemmeside sat op via Wordpress og skal til at bruge den til nogle tests til mit universitetsspeciale.

I testen skal brugerne starte på "side 1" og via link derfra gå til "side 2" og fra "side 2" til "side 3"... Dvs. der er en bestemt rækkefølge, der skal sikres.

Men for at testen kører som planlagt - fra "side 1" --> "side 2" --> "side 3", kræver det, at jeg kun tillader eget samt eksterne websites at linke til side 1 - og hvis andre sider end min "side 1" linker til "side 2" og hvis andre sider end "side 2" linker til side 3", skal disse eksterne links redirectes til "side 1".

Er der nogen her, der ved, hvordan jeg på denne måde sikrer (vel via redirects), at testens rækkefølge overholdes?
Avatar billede mediman Nybegynder
04. februar 2011 - 10:11 #1
Hvis det ikke skal gemmes hvor brugeren er nået til kan du bruge sessionsvariable. Ellers må du gemme det i en database.

Med sessionsvariable kunne det være noget i retning af :

I toppen af startsiden :
<?php
  session_start();
  $_SESSION['page'] = 1;
?>

Når startsiden er gennemført $_SESSION['page'] = 2;

I toppen af side 2 :
<?php
session_start();
$this_page = 2;
if($_SESSION['page'] == $this_page)
{
    Vis siden
}
else
{
    header("Location: side1.php"); //Eller hvad side 1 nu hedder
}
?>

Når side 2 er gennemført $_SESSION['page'] = 3

osv.

Husk at rydde op når brugeren er færdig :

$_SESSION = array(); //Tømmer sessionsvariable
session_destroy(); //Lukker session

Ovenstående er ikke testet, blot en ide som måske kan bringe dig videre.
Avatar billede aitnemed Novice
07. februar 2011 - 12:08 #2
Tusind tak for hjælpen.

Det virker næsten.

Det, jeg ikke forstår, er, at når jeg står på en fremmed side og klikker ind på side 3, så bliver jeg ganske korrekt redirected ind til side 1, men hvis jeg så derfra, går direkte ind på side 3, så bliver den vist?

Burde min kode ikke forhindre dette? Altså det skal jo kun være muligt, at foretage en rækkefølge, der hedder; 1 --> 2 --> 3... ikke 1 --> 3.

Hvad mangler jeg at gøre?

Herunder er koden, jeg har brugt.

Kode på side1:
<?php
session_start();
$_SESSION['page'] = 1;
?>

Kode på side2:
<?php
session_start();
if($_SESSION['page'] == 1)
{
$_SESSION['page'] = 2;
//Siden vises
}
else
{
    header("Location: http://www.minhjemmeside.dk/side1/");
}
?>

Kode på side3 - slutsiden:
<?php
session_start();
if($_SESSION['page'] == 2)
{
$_SESSION = array(); //Tømmer sessionsvariable
session_destroy(); //Lukker session
//Siden vises
}
else
{
    header("Location: http://www.minhjemmeside.dk/side1/");
}
Avatar billede aitnemed Novice
07. februar 2011 - 16:23 #3
Hmm... Var vist for hurtig der. Har sat siderne op præcist som de skal bruges, men nu bliver jeg redirected til "side 1" uanset hvad - også selvom jeg står på "side 1" og klikker på linket til "side 2".
Avatar billede aitnemed Novice
18. februar 2011 - 09:18 #4
Beklager meget at jeg ikke har givet lyd før nu.

Mediman smid et svar, så får du point.

Dit svar var helt korrekt - men grunden til at jeg ikke kunne få det til at virke var, at jeg prøvede at gøre det på en Wordpress installation.

Var nødt til at droppe Wordpress og måtte kode det fra bunden og der virkede dit forslag ganske glimrende... Så mange tak for det :o)
Avatar billede mediman Nybegynder
18. februar 2011 - 10:51 #5
Jeg er glad for at du fik det til at virke.

Og du skal have tak fordi du slutter spørgsmålet af på en ordentlig måde!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester