[PHP] Page Expired met sessions

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Beste php-helden,

ik ben de hele avond bezig met het zoeken naar een manier om met php sessies die irritante melding "warning - this page has expired" als je op de back button drukt in de browser te voorkomen.

Ik wil dat mensen als ze inloggen op de site gewoon een half uur ofzo ingelogd blijven ongeacht of ze de site verlaten of niet. Alleen als ze op log out klikken word de "sessie" afgebroken.

Kan dit met sessies of moet ik als ik dit wil bereiken overstappen op gewone cookies?

Acties:
  • 0 Henk 'm!

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 18-09 17:06

gorgi_19

Kruimeltjes zijn weer op :9

Dat wordt dan werken met de ouderwetse cookies. Zeker als er de kans bestaat dat er nieuwe schermen worden geopend en / of browsers worden afgesloten.

trouwens:
warning - this page has expired
Komt dit niet door een form welke gepost is?

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ja, je hebt ook nog gelijk van dat form! Als ik een testpagina maak waarbij geen data gepost word dan doet ie ut wel!
Maar ik denk dat ik toch voor de ouderwetse cookies ga!! Thanx

Acties:
  • 0 Henk 'm!

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 18-09 16:28

Bosmonster

*zucht*

dat komt niet door cookies of sessies.. maar door het posten van formulieren..

Een pagina waarnaar gepost is kan uiteraard niet zonder reposten opnieuw gegenereerd worden.. vandaar die melding van je browser..

Je kunt juist proberen meer met GET en sessies te werken, dat kan je een aantal posts schelen.

Wat ikzelf doe met formulieren die gewoon NIET opnieuw gepost mogen worden en waar je back dus wilt voorkomen is een soort "safe post".

Ik genereer een unieke ID in een hidden veld en zet die tijdelijk in de sessie.. na het posten check ik of de geposte ID overeenkomt met de sessie. Zo ja dan is die gepost en leeg ik de sessie. Zo nee dan loopt iemand te kutten met het formulier of gebruikt de back-button om het te reposten...

Acties:
  • 0 Henk 'm!

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06 13:31

drm

f0pc0dert

Als 't een niet al te ingewikkeld of secuur form is, kun je ook met de get method versturen ipv met post

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Bosmonster schreef op 20 November 2002 @ 21:54:
Wat ikzelf doe met formulieren die gewoon NIET opnieuw gepost mogen worden en waar je back dus wilt voorkomen is een soort "safe post".

Ik genereer een unieke ID in een hidden veld en zet die tijdelijk in de sessie.. na het posten check ik of de geposte ID overeenkomt met de sessie. Zo ja dan is die gepost en leeg ik de sessie. Zo nee dan loopt iemand te kutten met het formulier of gebruikt de back-button om het te reposten...
Oke, dat is duidelijk. Hoe zorg je dan dat mensen die WEL op de back knop drukken niet dat scherm krijgen van "page expired"...

Door het geheel in een if statement te zetten ofzo? Zou je een stukje voorbeeldcode hebben? Thanx alvast! _/-\o_

Acties:
  • 0 Henk 'm!

  • Genoil
  • Registratie: Maart 2000
  • Laatst online: 12-11-2023
kep laatst een site gebouwd waarbij de form-checking en invoer van de form gegevens in de databse op een lege pagina gedaan werd, behalve zo'n meta-de-vries tag (<META Content='refresh' ..) die naar de volgende pagina refreshte. Als je daarna op back klikt kom je gewoon weer terug op de formulier-pagina. Kweet niet zeker of dat de truuc was, check het ff. Als dat niet werkt zal'k nog es kijken wat dan wel de truuc is geweest :)

Acties:
  • 0 Henk 'm!

  • Sjaaky
  • Registratie: Oktober 2000
  • Laatst online: 18-09 13:29
Het makkelijkst is IMHO een redirect nadat je de POST hebt verwerkt. Redirecten gaat met
code:
1
header("Location: http://www.example.com/");

meer info over header

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Oh nou zie ik hoe dat gedaan wordt!! It all makes sense... geposte informatie verwerken, daarna een redirect erin knallen, die met headers wordt verstuurd zodat je als je op back klikt komt bij het formulier... Voorkomt ook dubbele posts zeker :D

bedankt mensen!!!

Acties:
  • 0 Henk 'm!

  • Genoil
  • Registratie: Maart 2000
  • Laatst online: 12-11-2023
Sjaaky schreef op 20 November 2002 @ 22:41:
Het makkelijkst is IMHO een redirect nadat je de POST hebt verwerkt. Redirecten gaat met
code:
1
header("Location: http://www.example.com/");

meer info over header
komt dat niet op hetzelfde neer als zo'n meta de vries tag?

Acties:
  • 0 Henk 'm!

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06 13:31

drm

f0pc0dert

Ja dat kan. 't Enige verschil is dat je met een Refresh-header een interval mee kan geven, waardoor je dus zo'n berichtje krijgt van "Je bericht is geplaatst. Over enkele seconden kun je terug".

offtopic:
De oplettende lezer merkt dat ik de paralel trek tussen "meta refresh tag" en een Refresh header. Dit komt omdat je met een meta tag met attribuut http-equiv niets anders doet dan "alsnog even" een header aan de browser opgeven.

Kortom, als je een tag
code:
1
<meta http-equiv="headernaam" content="headervalue" />
offtopic:
kun je deze zonder meer vervangen door een header
code:
1
headernaam: headervalue

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz

Pagina: 1