[php] Invoer kwijt door session

Pagina: 1
Acties:

  • RdeTuinman
  • Registratie: Mei 2001
  • Laatst online: 16-08 07:25
Ha, ik heb een pagina gemaakt met daarop een formpje met diverse invulvelden. Sommige velden zijn vereist (vrij normaal toch?)

Nu wordt dit formpje naar een php-filetje verzonden (method POST). In dat filetje wordt gecontroleerd of de vereiste velden allemaal ingevuld zijn. Als ze niet zijn ingevuld kun je met een history.go(-1) of back-button terug naar de invulpagina. Dan komen alle waarden weer in de velden te staan, welke wel ingevuld zijn.

Dit werkte dus normaal.

Nu heb ik een login gemaakt met sessies en op elke pagina wordt dus session_start() aangeroepen.

Als nu uit bovenstaand voorbeeld weer niet alle vereiste velden zijn ingevuld, en ik ga terug met de back-button of history.go(-1) dan zijn alle velden weer leeg.

Dus door die session 'onthoud' de browser de ingevulde waarden niet meer. Waar kan dit aan liggen en is dit te verhelpen?


PS. Ik weet of het ermee te maken heeft maar register_globals en track_vars zijn enabled.

  • Crazy D
  • Registratie: Augustus 2000
  • Nu online

Crazy D

I think we should take a look.

Zomaar een idee: Haal de sessie_start eens weg in die betreffende pagina, en kijk eens of het dan wel werkt. Werkt het dan wel, zal het iets met sessie te maken hebben, maar als het dan ook niet werkt, hoef je je iig niet blind te staren op die sessie.

Exact expert nodig?


  • RdeTuinman
  • Registratie: Mei 2001
  • Laatst online: 16-08 07:25
Ja, dat heb ik al geprobeerd, en dan werkt het wel gewoon.

Dus het komt echt door die session. Maar hoe is dit op te lossen ???

Verwijderd

Op woensdag 28 november 2001 17:21 schreef RdeTuinman het volgende:

...

Dus door die session 'onthoud' de browser de ingevulde waarden niet meer. Waar kan dit aan liggen en is dit te verhelpen?

...
Hoe kan dat nou weer? :?
Sessions worden toch server-side opgeslagen? Hoe kan je browser dat dan zien?

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 16-09 16:30

Janoz

Moderator Devschuur®

!litemod

Waarschijnlijk heeft dat meer met caching temaken heeft. Waarschijnlijk wordt er door het gebruik van een sessie aangegeven dat de pagina niet gecached mag worden oid. Daarom wordt de pagina bij een back opnieuw opgehaald.

Wat ik zelf altijd doe is submitten naar dezelfde pagina, en vervolgens (als het bij het invullen mis is gegaan) het formulier weer afdrukken en hier zelf de waardes in te vullen. Dan kan ik ook extra info geven bij het veld dat misgegaan is (bijvoorbeeld 'U wachtwoord moet langer dan 4 tekens zijn' of 'Een geldig email adres is verplicht')

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • RdeTuinman
  • Registratie: Mei 2001
  • Laatst online: 16-08 07:25
Dat kan ik idd beter doen. Is niet zo lastig, omdat het al een beetje werkt zo. Thnx.

Maar toch blijft het vreemd, dat als er sessions gebruikt worden, dat de ingevoerde data weg is. Zal idd wel met caching te maken hebben. :(

Mocht iemand het zeker weten, ik hoor het graag. ;)

  • RdeTuinman
  • Registratie: Mei 2001
  • Laatst online: 16-08 07:25
Ik heb het gevonden, het heeft idd te maken met caching. Om het op te lossen moet voordat de session_start() wordt aangeroepen session_cache_limiter ('private') worden gezet. Hierdoor wordt er alleen gecached tijdens de session.

Oplossing is misschien wel leuk voor later. :Y)
Pagina: 1