Ik heb weinig ervaring met sessions in php, de meeste vragen/berichten over sessions gaan over iets anders namelijk.
Het probleem...
Ik heb een formulier gemaakt met een sessie, dat werkt allemaal correct, echter het probleem zit in de BACK knop van de browser.
Als deze gebruikt wordt dan zijn alle waardes weer leeg, dit is echter niet de bedoeling. Ik wil de sessie gebruiken dat de ingevulde waardes maar 1 keer in de database geschreven kunnen worden.
Ik heb het script opgebouwd uit 2 php files.
In de eerste php file staat het formulier, dat formulier moet in 4 stappen worden ingevuld. In het 2de php bestand worden de gegevens in de DB gezet.
Nu is het eerste php bestand (index.php)als volgt opgebouwd:
een standaard <form> actie met submit.
Deze submit verwijst naar het zelfde bestand index.php
In dit bestand staat dan simpel weer gegeven het volgende:
Zo zijn er 4 van deze sectie's.
De laatste sectie is een overzicht met een vinkje dat je accoord gaat met bepaalde voorwaarden, als je dan op submit klikt ga je naar het 2de php bestand.
Alles werkt zoals ik al zei, echter terug gaan in de sectie's niet, stel je hebt een fout gemaakt in sectie 1 van het formulier en je zit al in sectie 2 worden alle gegevens door de sessie gewist als je op BACK klikt.
Ik wil nu dus dat alleen in sectie 4 de sessie begint, echter alleen het sessie commando verplaatsen in sectie 4 werkt niet, want als je dan op back klikt en je drukt vernieuwen staat alle ingevulde data er ineens weer omdat dit een overzicht veld is, zo kan men dus alsnog 2x dezelfde formulieren insturen.
Ik start mijn sessie in het eerste bestand met het volgende commando:
Dit staat direct 1 van de eerste commando's bovenaan.
In het 2de bestand staat ook direct vrijwel bovenaan:
Zoals ik al zei, de opzet werkt correct echter ik wil dus dat het alleen werkt vanaf de laatste sectie in het eerste bestand.
Kan me iemand nuttige tips geven hoe ik dit kan maken, met de php website kom ik er niet echt uit, ik ben nog te n00b met sessies en begrijp de meeste dingen nog niet goed.
Alvast bedankt
Het probleem...
Ik heb een formulier gemaakt met een sessie, dat werkt allemaal correct, echter het probleem zit in de BACK knop van de browser.
Als deze gebruikt wordt dan zijn alle waardes weer leeg, dit is echter niet de bedoeling. Ik wil de sessie gebruiken dat de ingevulde waardes maar 1 keer in de database geschreven kunnen worden.
Ik heb het script opgebouwd uit 2 php files.
In de eerste php file staat het formulier, dat formulier moet in 4 stappen worden ingevuld. In het 2de php bestand worden de gegevens in de DB gezet.
Nu is het eerste php bestand (index.php)als volgt opgebouwd:
een standaard <form> actie met submit.
Deze submit verwijst naar het zelfde bestand index.php
In dit bestand staat dan simpel weer gegeven het volgende:
code:
1
2
3
4
5
| sessie start if ($submit1=="ok") { <form actie> bla bla script invoer velden<submit actie>} if ($submit2=="ok") { <form actie> bla bla script invoer velden<submit actie>} if ($submit3=="ok") { <form actie> bla bla script invoer velden<submit actie>} <form> invoer velden bla bla <submit1=ok> |
Zo zijn er 4 van deze sectie's.
De laatste sectie is een overzicht met een vinkje dat je accoord gaat met bepaalde voorwaarden, als je dan op submit klikt ga je naar het 2de php bestand.
Alles werkt zoals ik al zei, echter terug gaan in de sectie's niet, stel je hebt een fout gemaakt in sectie 1 van het formulier en je zit al in sectie 2 worden alle gegevens door de sessie gewist als je op BACK klikt.
Ik wil nu dus dat alleen in sectie 4 de sessie begint, echter alleen het sessie commando verplaatsen in sectie 4 werkt niet, want als je dan op back klikt en je drukt vernieuwen staat alle ingevulde data er ineens weer omdat dit een overzicht veld is, zo kan men dus alsnog 2x dezelfde formulieren insturen.
Ik start mijn sessie in het eerste bestand met het volgende commando:
code:
1
2
| session_start(); if (isset($_SESSION['al_ge_submit'])) { exit ("error tekst"); } |
Dit staat direct 1 van de eerste commando's bovenaan.
In het 2de bestand staat ook direct vrijwel bovenaan:
code:
1
2
| session_start(); $_SESSION['al_ge_submit']="ja"; |
Zoals ik al zei, de opzet werkt correct echter ik wil dus dat het alleen werkt vanaf de laatste sectie in het eerste bestand.
Kan me iemand nuttige tips geven hoe ik dit kan maken, met de php website kom ik er niet echt uit, ik ben nog te n00b met sessies en begrijp de meeste dingen nog niet goed.
Alvast bedankt
[ Voor 8% gewijzigd door Verwijderd op 12-06-2003 03:14 ]