Avatar billede mrfunder Nybegynder
19. juli 2008 - 20:24 Der er 13 kommentarer og
1 løsning

Ved login redirect til forrige side

Hej Eksperter.

Jeg har skrevet et login script som bliver inkluderet på adskillige sider, idet man i forvejen ikke er logget ind- heraf når man så vælger at logge ind bliver man nu sendt til forsiden.

Hvad er den bedste løsning hvis man skal sendes til siden man loggede ind fra?

På forhånd tak
Avatar billede jakobdo Ekspert
19. juli 2008 - 20:54 #1
Det er at gemme referrer.
Så hvis vi siger en bruger besøger:

din-side.dk/secret.php
men ikke er logget ind.
Så skal dit script evt. gemme secret.php i en session eller smide den med på linket som:

din-side.dk/login.php?ref=secret.php
Avatar billede mrfunder Nybegynder
19. juli 2008 - 20:56 #2
Man kan ikke blot lave noget i stil med header(Location: $HTTP_REFERER); ?
Avatar billede jakobdo Ekspert
19. juli 2008 - 21:09 #3
header('Location: ' . $_SERVER['HTTP_REFERER']);
exit();

burder gøre det.
Avatar billede jakobdo Ekspert
19. juli 2008 - 21:09 #4
burde uden r. :o)
Avatar billede showsource Seniormester
19. juli 2008 - 21:14 #5
Jeg ville smide et hiddenfelt i formularen,
<input type="hidden" name="goback" value="<?php echo $_SERVER["REQUEST_URI"]; ?>">

og så bruge den værdi til redirect.

$_SERVER["HTTP_REFERER"] er ikke altid korrekt, iøvrigt.
Avatar billede mrfunder Nybegynder
19. juli 2008 - 21:58 #6
Jeg har valgt at bruge din løsning showsource- smid venligst et svar :)
Og tak for hjælpen til jer begge to mange gange
Avatar billede jakobdo Ekspert
19. juli 2008 - 22:14 #7
showsource: Det kan jo også laves med: din-side.dk/login.php?ref=secret.php
2 sider af samme sag.
Avatar billede thesurfer Nybegynder
20. juli 2008 - 03:16 #8
Uden en session, eller f.eks. URL, går det ikke.

secret.php skal fortælle login.php at det er "secret.php" der skal returneres til, og ikke $_SERVER["REQUEST_URI"].
For $_SERVER["REQUEST_URI"] vil jo bare sige "login.php", når man allerede er på login.php.

Det skulle nok have været (eller hvordan man nu gør i PHP):

<input type="hidden" name="goback" value="<?php echo $_GET['ref']; ?>">

i kombination med login.php?ref=secret.php.
Avatar billede thesurfer Nybegynder
20. juli 2008 - 03:20 #9
Jeg programmerer normalt i ASP, men fremgangsmåden er den samme..

I ASP plejer at lave en fil der styrer adgangen. Denne fil inkluderes på alle sider, hvor der kræves speciel adgang.

Via denne fil kan man så f.eks. have niveau, brugernavn eller titler, osv..
F.eks. kan man sige, at man skal have sikkerhedsniveau 2 for at se side, eller at man skal være en bestemt bruger (f.eks. "admin"), eller at man skal have en bestemt titel (f.eks. "coadmin", "moderator" el.lign), osv..
Avatar billede showsource Seniormester
20. juli 2008 - 07:24 #10
$_SERVER["REQUEST_URI"]; returnerer en url'en, dog uden domainnavn.
Og ingen point, ellers tak.
Avatar billede mrfunder Nybegynder
20. juli 2008 - 19:31 #11
Er der andre der føler der bør have point inden tråden lukkes? Jeres kommentarer har alle givet stof til eftertanke :)
Avatar billede thesurfer Nybegynder
21. juli 2008 - 22:50 #12
Ingen points til mig, tak.
Avatar billede jakobdo Ekspert
22. juli 2008 - 08:01 #13
Jeg springer også over..
Avatar billede mrfunder Nybegynder
25. juli 2008 - 20:32 #14
lukker
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