Neem dit als voorbeeld:
Ik doe zoveel mogelijk aan valideren met HTML/JS, waarna vervolgens PHP het overneemt (bijvoorbeeld: bestaat de gebruiker wel? Wachtwoord correct? etc.). Dit doe ik aan de hand van de Try/Catch-methode.
Stel de gebruiker vult zijn gegevens in, waarna er volgens een (PHP) foutmelding ontstaat.
De gebruiker breekt vervolgens de handeling af door naar een andere pagina te gaan.
Vervolgens klikt de gebruiker terug naar de vorige pagina (d.m.v. de back-knop van de browser), met als resultaat dat het document is expired.
Op zich ook logisch, aangezien het form een post is en geen get is.
In IE kan ik dit oplossen door de volgende PHP code:
Maar in Chrome resultaat dit nog steeds in de ERR_CACHE_MIS melding, tenzij ik caching volledig uitzet met de Developer Tools.
Stel ik kan niet een get methode gebruiken, en ook niet redirecten naar iets anders, wat is dan de beste oplossing?
Ik zou bijvoorbeeld een jQuery kunnen gebruiken, die de form post verwerkt in een andere pagina.
Maar misschien zijn er betere oplossingen, ik hoor het graag.
Erg bedankt!
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
| <?php $err = ''; if ($_SERVER['REQUEST_METHOD'] == 'POST') { try { // probeer gebruiker in te loggen header('Location: ..'); // terug naar pagina voor login exit(); } catch (Exception $e) { $err = $e->getMessage(); } } echo $err; ?> <form method="post"> <input type="email" name="email"> <input type="password" name="password"> </form> |
Ik doe zoveel mogelijk aan valideren met HTML/JS, waarna vervolgens PHP het overneemt (bijvoorbeeld: bestaat de gebruiker wel? Wachtwoord correct? etc.). Dit doe ik aan de hand van de Try/Catch-methode.
Stel de gebruiker vult zijn gegevens in, waarna er volgens een (PHP) foutmelding ontstaat.
De gebruiker breekt vervolgens de handeling af door naar een andere pagina te gaan.
Vervolgens klikt de gebruiker terug naar de vorige pagina (d.m.v. de back-knop van de browser), met als resultaat dat het document is expired.
Op zich ook logisch, aangezien het form een post is en geen get is.
In IE kan ik dit oplossen door de volgende PHP code:
code:
1
| session_cache_limiter('private_no_expire'); |
Maar in Chrome resultaat dit nog steeds in de ERR_CACHE_MIS melding, tenzij ik caching volledig uitzet met de Developer Tools.
Stel ik kan niet een get methode gebruiken, en ook niet redirecten naar iets anders, wat is dan de beste oplossing?
Ik zou bijvoorbeeld een jQuery kunnen gebruiken, die de form post verwerkt in een andere pagina.
Maar misschien zijn er betere oplossingen, ik hoor het graag.
Erg bedankt!