Thread: PHP vs JS: Vorige pagina...
-
19-09-2004, 03:38 #1
PHP vs JS: Vorige pagina...
Ik heb dus altijd al gewerkt met
om bij een error de persoon terug te sturen naar de vorige pagina, maar sinds kort werkt het maar half en halfPHP Code:header("Location: ".$_SERVER['HTTP_REFERER']);

Als ik via POST iets verstuur wil het wel werken maar als ik iets via GET verstuur wil het niet werken.
Nu heb ik als alternatiefmaar ik weet niet of dit een degelijke oplossing is, maw het werkt wel maar is het wel veilig en gebruiksvriendelijk?PHP Code:echo "<script>history.go(-1)</script>"
Graag jullie antwoord
Greetzno votes
-
-
19-09-2004, 13:07 #2
header('Location: '.$_SERVER['HTTP_REFERER'].$_SERVER['argv'][0]);
no votes
-
19-09-2004, 13:20 #3Member
- Registered
- 18/11/02
- Location
- Eke, Belgiƫ
- Posts
- 2,448
- iTrader
- 0
- Mentioned
- 0 Post(s)
- Reputation
- 0/0
Tweede methode zal gewoon niet werken als de gebruiker JavaScript heeft uitgeschakeld.
no votes
-
19-09-2004, 15:17 #4
Kheb wa zitten testen en dit werkt evenmin, $_SERVER['HTTP_REFERER'] geeft em ni mee en die $_SERVER['argv'][0] wordt gewoon "x=comments&id=9", dit is de staart van de url waar ik me "nu" bevindt dus da werkt ni echt

Das waar maar hoeveel % van de surfers zet hun javascript uit ???no votes
-
19-09-2004, 15:21 #5
Ik maak een link van "klik om terug te keren als u niet automatisch..."
en dan de javascript erbij
khaat het dat er geen output boven die header mag staan
(met includes enzo is dit best wel lastig)no votes
-
19-09-2004, 15:33 #6no votes
-
19-09-2004, 21:50 #7Member
- Registered
- 12/10/02
- Location
- mars
- Posts
- 14,319
- iTrader
- 2 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 0/0
Met sessies werken op je site:
$_SESSION["prevget"] = $_SERVER["QUERY_STRING"]; --> op het einde v/d pagina
dan wordt je header zoiets:
PHP Code:header('Location: '.$_SERVER['HTTP_REFERER']."?".isset(
$_SESSION["prevget"])?$_SESSION["prevget"]:"");
no votes
-
19-09-2004, 23:46 #8no votes
-
20-09-2004, 05:36 #9
omdat sommige browsers dit uitschakelen en/of gewoon niet meegeven
HTTP_REFERER is dus browser afhankelijk en niet altijd "reliable"no votes
-
20-09-2004, 08:27 #10Member
- Registered
- 15/05/04
- Location
- <!-_^?>
- Posts
- 395
- iTrader
- 1 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 0/0
freak, test het verschil eens met je script op een local-server en een degelyke webserver van een host.
Bij mij lag het verschil daarin, omdat lokaal die HTTP_REFERER ook niets meegaf.no votes
-
20-09-2004, 12:23 #11
Probeer $_SERVER['REQUEST_URI']
Als die leeg is, gebruik je $_ENV['REQUEST_URI']
Dus om terug te gaan:
header("Location: ". ($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : $_ENV['REQUEST_URI'] );
Meer info te vinden op:
http://www.php.net/manual/nl/languag...predefined.php\\ Portfolio :: Nulart.be //
\\ 4dfx-lab :: 4dfx-lab.net //
\\ System :: View //no votes
-
20-09-2004, 14:26 #12Member
- Registered
- 17/07/02
- Location
- Sol System
- Posts
- 10,064
- iTrader
- 1 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 27/78
De meeste browsers geven die wel gewoon door hoor, maar er zijn een pak personal firewalls en proxies die die extra info weghalen uit de requests (oa Norton PF dacht ik)... In een sessie telkens de laatst opgevraagde URL opslaan lijkt mij ook wel de simpelste oplossing, tenzij je op voorhand weet naar welk script je moet redirecten, dan vul je gewoon die URL in. En hier lijkt dat laatste mij de simpelste oplossing, aangezien er blijkbaar toch steeds naar 't zelfde script geredirect moet worden (tenzij er ergens extra - user afhankelijke - parameters in 't spel zijn uiteraard).
PSN: dJeezBE - Delicious bookmarks
Disclaimer: I am currently suffering from severe CSD (Compulsive Sarcasm Disorder). - L'onion fait la farce - Facile largire de alienoPastafarian by choiceno votes
-
20-09-2004, 19:20 #13Member
- Registered
- 12/10/02
- Location
- mars
- Posts
- 14,319
- iTrader
- 2 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 0/0
edit: note: gebruik liever de empty functie hierop dan een gewone check, is correcter
.
En moest je nu eens 2 keer nadenken voor je comments geeft: ik gaf enkel methode voor get-vars op te slaan, een beetje doordenken biedt de oplossing aan he: voeg de url er op die pagina aan toe. Dan heb je enkel problemen met externe links (als dat al een probleem voor jou is
).
Last edited by killgore; 20-09-2004 at 19:32.
no votes
-
21-09-2004, 11:20 #14
Ik gebruik bijna nooit empty.
Dezelfde waarde wordt verkregen in dit geval (true als er iets instaat en false als ie leeg is) en in mijn geval kan je altijd met 'false' werken (bv bij return uit functies).
Dus er zijn wel enkele voordelen aan mijn methode
\\ Portfolio :: Nulart.be //
\\ 4dfx-lab :: 4dfx-lab.net //
\\ System :: View //no votes
-
21-09-2004, 21:27 #15Member
- Registered
- 12/10/02
- Location
- mars
- Posts
- 14,319
- iTrader
- 2 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 0/0
tbh, !empty() en gewone evaluatie hebben zelfde effect, maar empty is duidelijker om te lezen imho (en ook correcter). empty werkt dus ook met booleanse waarden
.
Jouw methode zou wel een notice kunnen krijgen als de var niet geset is, met empty heb je dit niet. dus ==> mijne is correcter en doet hetzelfde
.
meer info: http://be2.php.net/manual/en/types.comparisons.phpno votes
