[php] cache-control and back button

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hallo, ik heb een vraag over de cache-control header in PHP samen met IE. Er zijn al heel wat vragen over geweest, maar ze zijn allemaal net iets te basic, en mijn antwoord staat er niet tussen. Dus hier mijn vraag:

Ik heb een admin pagina voor mijn website en een PHPLIB loginscherm dat werkt op basis van PHP4 sessies. Als een admin nou een formulier invult met gegevens en opstuurt, dan gebeurd het wel eens dat ik een foutmelding geef over het ingevulde en dan klikt de admin op de back button. Dan is het formulier dus lekker leeg!

Nou, dat komt natuurlijk doordat ik dit
PHP:
1
2
3
4
5
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");              // Date in the past
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); // always modified
header("Cache-Control: no-store, no-cache, must-revalidate");  // HTTP/1.1
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");                                    // HTTP/1.0
in mijn code heb staan! Haal ik de cache-control weg dan zou het probleem over moeten zijn, maar dat is dus niet zo doordat het PHP4 sessie systeem de cache-control header er lekker _zelf_ in zet! Dat probleem is op zich op te lossen door in php.ini de session.cache-limiter aan te passen, maar daar heb ik natuurlijk niks aan, want mijn ISP gaat niet zijn php.ini alleen voor mij zitten veranderen natuurlijk!

Ik kan me gewoon nauwelijks voorstellen dat het zo'n probleem is! Dat IE de pagina wil refreshen als ik op back druk, dat is prima, maar daarom hoeft dat formulier toch niet leeg :? Natuurlijk, als ik op F5 zou drukken of als ik op een link druk naar dezelfde pagina, dan wil ik een nieuwe lege pagina, maar als ik gewoon op Back druk dan mag dat formulier toch wel ingevuld blijven?

Is er iemand die een oplossing weet? Hoe hou ik het formulier ingevuld als ik op Back druk? Ik kan zelf niks veranderen aan de php.ini file, en ik kom ook niet onder PHP4 sessies uit. Ik heb al allerlei oplossing gelezen over een history.go(-1) link, maar het feit blijft dat de admin gegarandeert op de Back knop drukt, niet een of andere link. En om nou het hele form in sessievariabelen te zetten en zelf weer in te vullen lijkt me zeer omslachtig met al die admin-pagina's :(

Een andere vraag is: Stel dat de pagina wel gecached wordt. Op een gegeven moment log ik uit. Vervolgens druk ik een paar keer op de backbutton en ik kreeg al die admin paginas weer te zien. Dat mag toch geen security probleem zijn? want wil je iets POSTen dan zegt het systeem dat je niet bent ingelogd. Of maak ik hier een denkfout?

edit:oops toch typefout

[ Voor 3% gewijzigd door Verwijderd op 12-11-2003 16:00 . Reden: oops toch typefout ]


Acties:
  • 0 Henk 'm!

  • D2k
  • Registratie: Januari 2001
  • Laatst online: 02-09 11:02

D2k

laat het form posten naar zichzelf en handel daar de errors af en display daar de ingevoerde waarden weer

veel betere oplossing.

Doet iets met Cloud (MS/IBM)


Acties:
  • 0 Henk 'm!

  • source
  • Registratie: Januari 2000
  • Laatst online: 15-08 15:33
D2k schreef op 12 november 2003 @ 16:04:
laat het form posten naar zichzelf en handel daar de errors af en display daar de ingevoerde waarden weer

veel betere oplossing.
* source is het daarmee eens!

modbreak: Als je niets hebt toe te voegen, zeg dan niets? :?

[ Voor 18% gewijzigd door curry684 op 12-11-2003 16:50 ]

Diplomacy is the ability to tell a person to go to hell in such a nice way that he looks forward to the trip.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
D2k schreef op 12 november 2003 @ 16:04:
laat het form posten naar zichzelf en handel daar de errors af en display daar de ingevoerde waarden weer

veel betere oplossing.
Zou het dan echt waar zijn? Dan heb ik een admin pagina met:
-tabel met overzicht, edit+delete
-form voor een nieuwe entry
-form voor fout in nieuwe entry form
-form voor een edit (is toch redelijk anders dan nieuw form)
-form voor fout in edit form
Wat een werk :(

Ligt het aan mij of is de productiviteit van php/html de afgelopen 3 a 4 jaar hetzelfde gebleven?

Acties:
  • 0 Henk 'm!

  • D2k
  • Registratie: Januari 2001
  • Laatst online: 02-09 11:02

D2k

Verwijderd schreef op 12 november 2003 @ 16:26:
[...]

Zou het dan echt waar zijn? Dan heb ik een admin pagina met:
-tabel met overzicht, edit+delete
-form voor een nieuwe entry
-form voor fout in nieuwe entry form
-form voor een edit (is toch redelijk anders dan nieuw form)
-form voor fout in edit form
Wat een werk :(

Ligt het aan mij of is de productiviteit van php/html de afgelopen 3 a 4 jaar hetzelfde gebleven?
uhm die 2 forms voor edit en die error zijn dubbel
daar hoef je er maar 1 van te hebben met wat extra logica.

dus
if($error)
{
//doe iets anders
}

dat doe je in je form

Doet iets met Cloud (MS/IBM)


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
D2k schreef op 12 november 2003 @ 16:46:
[...]

uhm die 2 forms voor edit en die error zijn dubbel
daar hoef je er maar 1 van te hebben met wat extra logica.

dus
if($error)
{
//doe iets anders
}

dat doe je in je form
Als je edit dat komt alles uit een database, maar als daar een fout in zit dan moet het edit form alle POST laten zien.... Tja eventueel kan dat worden gecombineerd, net als de newform en newform+fout. :P

Bedankt iig tot zoverre.
Pagina: 1