Avatar billede snie97 Nybegynder
23. december 2003 - 11:42 Der er 10 kommentarer og
1 løsning

TIlbage til foregående side

Hvordan er det nu lige man får PHP til at gå tilbage på den side man lige har forladt.

Og det skal ikke være java script:history.go(-1) da siden skal genindlæses...
Avatar billede fangel Nybegynder
23. december 2003 - 11:46 #1
den metode der oftest virker, er som du selv siger JS med dens history.back(-1);

derefter kommer

<?php
header("LOCATION: " . $_SERVER['HTTP_REFERER']);
?>

men denne virker langt fra hver gang...
1) rereferer variablen kommer kun hvis du har fulgt et link
2) den er valgfri for browseren at sende - den behøves ikke / kræves ikke
3) mange firewalls sortere den fra så den ikke kommer igennem

Morten
Avatar billede snie97 Nybegynder
23. december 2003 - 11:49 #2
Hvis jeg kan se den i PHPinfo() er den så med?

Det der er meningen med det er at jeg har et script (poll_perform.php) der som navnet antyder skal udføre nogen forskellige handlinger og sende brugeren tilbage til den oprindelige (opdaterede) side...
Avatar billede snie97 Nybegynder
23. december 2003 - 11:51 #3
"2) den er valgfri for browseren at sende - den behøves ikke / kræves ikke
3) mange firewalls sortere den fra så den ikke kommer igennem"

Gælder det også for $REQUEST_URI ?
Avatar billede fangel Nybegynder
23. december 2003 - 11:56 #4
REQUEST URI er den side der er blevet kaldt - hvis den ikke var der havde browseren ikke fået nogen side - derfor, JA, den er der altid... ;)

hvis du bare skal have sidenavn bruger jeg normalt

basename($_SERVER['PHP_SELF']); eller basename(__FILE__);
(den sidste hvis der ikke bliver includet noget, da hvis det er i en includet fil, vil tage navn efter den...)

---

du vil kunne se om http referer er med i phpinfo(); ja

Morten
Avatar billede snie97 Nybegynder
23. december 2003 - 11:57 #5
ok jeg tror bare jeg sender $REQUEST_URI med til perform-scriptet og bruger den istedet for HTTP_REFERER
Avatar billede snie97 Nybegynder
23. december 2003 - 12:00 #6
Vil du have point?
Avatar billede ztyxx Nybegynder
23. december 2003 - 17:25 #7
du kan godt bruge javascript-metoden, hvis du vil have siden genindlæst, skal du blot sørge for at den ikke gemmes i brugerens cache, det gør du ved at sætte denne stump først i din phpfil
<?php
// Date in the past
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");

// always modified
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");

// HTTP/1.1
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);

// HTTP/1.0
header("Pragma: no-cache");
?>

se:http://dk2.php.net/header
Avatar billede myplacedk Nybegynder
23. december 2003 - 23:22 #8
ztyxx > History BURDE vise det, du så før, uanset cache, expiration osv. De fleste browsere fungerer ikke på denne måde, men dit forslag vil ikke fungere, på de browsere hvis history fungerer som den burde.

Derfor anbefaler jeg at man ikke bruger history, hvis man forventer et bestemt resultat. Hvis en side skal genindlæses, så bed browseren om det.
Hvis side A linker til side B, og side B skal returnere brugeren til side A, som skal genindlæses, så anbefaler jeg at side A sender sin egen url med til side B. B kan så sende brugeren tilbage til side A. For at få genindlæst side A kan man bruge de sædvanlige header-tricks. For at tvinge browseren kan man lave en mindre ændring i urlen. Fx. tilføje en get-parameter, med tilfældigt indhold.
Avatar billede ztyxx Nybegynder
24. december 2003 - 11:50 #9
myplacedk> så lærte jeg lidt i dag også ;-)

glædelig jul
Avatar billede snie97 Nybegynder
04. juni 2004 - 14:18 #10
lukker
Avatar billede snie97 Nybegynder
04. juni 2004 - 14:18 #11
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