Avatar billede mpj86 Nybegynder
06. juni 2003 - 13:29 Der er 14 kommentarer og
1 løsning

Skal sende brugere tilbage til hvor han kom fra??

Hej

Jeg er i gang med at lave så en bruger skal være logget ind før han kan skrive en kommentar når han så kligger på f.eks skriv_kommentar.php?id=7 og han ikke er logget ind så hopper den over til login.php når han så er logget ind skal jeg have den til at sende han tilbage til skriv_kommentar.php?id=7 igen hvordan gør man det??
Avatar billede schaefner Juniormester
06. juni 2003 - 13:31 #1
$back = $_SERVER['HTTP_REFERER'];
header("Location: $back");
Avatar billede mpj86 Nybegynder
06. juni 2003 - 13:33 #2
Skal det være på login.php???
Avatar billede schaefner Juniormester
06. juni 2003 - 13:33 #3
ja, så burde det virke
Avatar billede avminarm Juniormester
06. juni 2003 - 13:37 #4
i følge php.net er $_SERVER['HTTP_REFERER']; ikke ri´gtig til at stole på i alle situationer - brug hellere filens navn:

header("Location: login.php");

snip fra manualen:
The address of the page (if any) which referred the user agent to the current page. This is set by the user agent. Not all user agents will set this, and some provide the ability to modify HTTP_REFERER as a feature. In short, it cannot really be trusted.
Avatar billede mpj86 Nybegynder
06. juni 2003 - 13:38 #5
Yep den er der næsten login.php er bare en form den sender en til login-ok.php og der er den kode som du skrevet så når man er logget ind så sender den en tilbage til login.php men det er ikke nok den skal sende 2 gange tilbage.
Avatar billede schaefner Juniormester
06. juni 2003 - 13:39 #6
så gør du således:

på login.php indsætter du dette i din formular

<input type="hidden" name="back" value="<?php echo $_SERVER['HTTP_REFERER']; ?>">

på login.ok indsætter du så dette:

$back = $_POST['back'];
header("Location: $back");
Avatar billede mpj86 Nybegynder
06. juni 2003 - 13:39 #7
avminarm: linket kan jo være med forskeligt id det er det der er problemet så jeg kan ikke bare sætte den til skriv_kommentar.php?id=7
Avatar billede avminarm Juniormester
06. juni 2003 - 13:42 #8
så ville jeg måske bruge en javascript go back funktion i scriptet, men det er nok lidt en smagssag - schaefners burde nok virke i de fleste tilfælde ;o)
Avatar billede schaefner Juniormester
06. juni 2003 - 13:42 #9
Du kunne eventuelt krydre den, og gøre således:

$back = (empty($_POST['back'])) ? $_POST['back'] : 'login.php';
header("Location: $back");

hvis $_SERVER['HTTP_REFERER'] er tom sendes du brugeren til en forudbestemt side, i det her tilfælde login.php
Avatar billede avminarm Juniormester
06. juni 2003 - 13:44 #10
du kunne jo hente linket via $_GET
$back = $_GET['id'];
header("Location: skriv_kommentar.php?id=".$back."");
Avatar billede schaefner Juniormester
06. juni 2003 - 13:45 #11
avminarm >> Det er jo ikke sikker han er på en side der lige præcis ser således ud ;)
Avatar billede schaefner Juniormester
06. juni 2003 - 13:46 #12
vil da lige lægge et svar
Avatar billede mpj86 Nybegynder
06. juni 2003 - 13:49 #13
Hmm det dur ikke med:
$back = (empty($_POST['back'])) ? $_POST['back'] : 'login.php';
header("Location: $back");

Den sender bare en til login.php også selv om at den kan komme tilbage..
Avatar billede schaefner Juniormester
06. juni 2003 - 13:50 #14
Det er fodi jeg er en klap, det skal være:

$back = (empty($_POST['back'])) ? 'login.php' : $_POST['back'];
header("Location: $back");
Avatar billede mpj86 Nybegynder
06. juni 2003 - 13:54 #15
Det dur tak.
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