webForumDet fria alternativet

$_SERVER['REQUEST_URI'] funkar inte som jag vill

PHP

5 svar · 6 154 visningar · startad av jiggan

Medlem sedan juni 2003175 inlägg
Frågan#1

Det är så här att jag inte riktigt får rätt på $_SERVER['REQUEST_URI']. Så här ser min länk ut:

"<a href=logout.php?return=".$_SERVER['REQUEST_URI'].">(Logga ut)</a>"

I logout.php står det så här:

header("Location: ".$_GET['return']."");

Ett exempel är att man är i read.php?section=1&id=2 så kommer man tillbaka till read.php?section=1. Alltså hoppar den över id. Någon som kan se vad jag gör för fel?

Medlem sedan mars 20032 667 inlägg
Medlem sedan juni 2003175 inlägg
#3

Men det funkar som det ska när man skickar med det som value i ett inloggningsformulär, så det borde ju funka här också?

Medlem sedan mars 20025 907 inlägg
#4

$_SERVER['REQUEST_URI'] innehåller alltså en ampersand (&). Då borde alltså länken bli något liknande det här

<a href=logout.php?return=/read.php?section=1&id=2>(Logga ut)</a>

Innehåller verkligen $_GET['return'] vad du tror att den gör? Ta en titt på urlencode(). :)

Medlem sedan juni 2003175 inlägg
#5

Jag löste hela problemet med urlencode och urldecode nu!
Nu ser det ut så här:

"<a href=logout.php?return=". urlencode($_SERVER['REQUEST_URI']) .">(Logga ut)</a>"
[PHP]
Och i logout.php:
[PHP]
header("Location: ". urldecode($_GET['return']));
Medlem sedan mars 20025 907 inlägg
#6

Du behöver inte & ska inte använda urldecode() på din data i det här fallet. Läs användarkommentaren av Matt Johnson (26-Dec-2004 01:49, dvs den senaste!) i manualen

266 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
120 ms — deklarationer (db)
0 ms — hämta statistik (cache)
136 ms — hämta tråd, inlägg och bilagor (db)
127 ms — ändringar (db)