Toon posts:

History back afvangen na uitloggen

Pagina: 1
Acties:

Verwijderd

Topicstarter
Op dit moment ben ik bezig met het inloggedeelte van een nieuwe website.
Deze site is volledig in PHP en MYSQL gemaakt.

Als de klanten of gebruikers inloggen wordt er in de functie checkuser.php de sessievariabele loggedin gezet als de gebruiker inlogt.

Alleen heb ik nu een vraag op het moment dat iemand uit gaat loggen.

Als de betreffende persoon uitlogd, wordt de sessie gedestroyd, dus verwijdert. Dit gaat allemaal goed. Alleen als de persoon nu op historyback(terug) klikt, is hij gewoon weer ingelogd.

Nu heb ik het volgende al geprobeerd om te testen.

- Ik log of
- Ik verwijder de pagina
- Klik op history back.

Ook nu laad hij de pagina, terwijl hij verwijdert is. Hoe kan ik dit het beste oplossen???

Verwijderd

Topicstarter
Dit probleem is eigenlijk alleen in IE. In Mozilla werkt het okee...

  • Voutloos
  • Registratie: Januari 2002
  • Niet online
- Ik log of
- Ik verwijder de pagina
- Klik op history back.
Als de pagina niet meer op de server staat, dan is het probleem gewoon dat IE de pagina uit zijn cache blijft halen. Op zich kan je je afvragen hoe erg dat is (hangt van content af), de gebruiker mocht die pagina eerst ook zien en kan toch geen actieve handelingen op de site doen. Wellicht moet het met een simpel headertje wel te regelen zijn dat niet alles gecached wordt. :)

[ Voor 13% gewijzigd door Voutloos op 13-10-2005 11:38 ]

{signature}


  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 18:38
Caching uitzetten middels headers zodat altijd op de server gechecked wordt of de sessie bestaat?

Verwijderd

Topicstarter
En hoe zou je dat moeten doen met headers??? en welke headers??

  • Superdeboer
  • Registratie: December 2002
  • Niet online

Superdeboer

Sa-weee-tah

Even in de manual voor header() kijken. ;)

Zelf gebruik ik altijd iets als:
PHP:
1
2
3
4
5
6
7
8
9
 // 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");
// Date in the past
header("Expires: Mon, 05 Dec 1970 05:00:00 GMT");
// always modified
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");

When I write my code, only God and I know what it means. One week later, only God knows.
Hell yes it's a Cuban Cigar, but I'm not supporting their economy, I'm burning their fields.


  • Voutloos
  • Registratie: Januari 2002
  • Niet online
Verwijderd schreef op donderdag 13 oktober 2005 @ 11:54:
En hoe zou je dat moeten doen met headers??? en welke headers??
Google eens naar alle tot nu toe in dit topic genoemde keywords 'header no cache in IE PHP' en voila. :)

{signature}


  • frickY
  • Registratie: Juli 2001
  • Laatst online: 24-04 11:26
Superdeboer schreef op donderdag 13 oktober 2005 @ 12:00:
Even in de manual voor header() kijken. ;)

Zelf gebruik ik altijd iets als:
PHP:
1
2
3
4
5
6
7
8
9
 // 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");
// Date in the past
header("Expires: Mon, 05 Dec 1970 05:00:00 GMT");
// always modified
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
Dit laat ik bij voorkeur door PHP en Apache zelf afhandelen door gebruik te maken van session_cache_limiter()
Deze instelling zou trouwens vanuit de standaard PHP configuratie al op 'nocache' moeten staan.

[ Voor 12% gewijzigd door frickY op 13-10-2005 12:39 ]


Verwijderd

Dan daarbij zou je ook een javascript code kunnen gebruiken waarmee je de back-knop disabled.
code:
1
history.go(0);

Dit kan je best gebruiken, dat kan je BOVENOP de no-cache headers doen.

  • RM-rf
  • Registratie: September 2000
  • Laatst online: 22:27

RM-rf

1 2 3 4 5 7 6 8 9

Verwijderd schreef op donderdag 13 oktober 2005 @ 13:12:
Dan daarbij zou je ook een javascript code kunnen gebruiken waarmee je de back-knop disabled.
code:
1
history.go(0);

Dit kan je best gebruiken, dat kan je BOVENOP de no-cache headers doen.
:? hoe wil jij met javascript de Back knop disablen?

die back knop is deel van de browser GUI en valt ver buiten de sandbox waarbinnen javascript dingen kan doen, mogelijk is het wat betreft explorer wel met een VB-/ActiveX-script te doen welke extra permissions zou vragen... maar met standaard javascript is het niet te doen.

de enige echte allerbeste manier om dit goed te doen is de juiste cache-methode te forceren, en de browser op die methode te dwingen ook werkelijk een request te doen voor de pagina, en deze niet uit de cache te halen.

Intelligente mensen zoeken in tijden van crisis naar oplossingen, Idioten zoeken dan schuldigen


Verwijderd

@ RM-rf:
In zeg niet dat je hem kan disablen, ik zeg dat je hem kan legen dmv een bepaald history.go commando. Normaal is dat history.go(0), maar ik heb het net even getest, en dat werkt blijkbaar niet meer onder Internet Explorer. Vroeger in ieder geval wel. Verder is dat een stinkende methode en ik zeg niet dat hij hem moet gebruiken. Maar misschien dat het leuk was als "toevoeging". Maar het is tegenwoordig dus niet meer zo als vroeger.
Pagina: 1