Op mijn website heb ik een aantal forms, waarlangs gebruikers categorien aan een boom kunnen toevoegen, verwijderen, editten etc. Nadat het form is gesumbit en PHP de bewerking (bijvoorbeeld toevoegen van een categorie) heeft uitgevoerd, voer ik een header refresh uit. Hiermee voorkom ik dat de gebruiker na de uitvoering om wat voor reden dan ook de pagina refreshed en de form data weer opnieuw gezonden wordt (en dus de bewerking nogmaals plaatsvind).
Als de gebruiker middels het form een categorie toevoegt aan de boom, wil ik na de header refresh de gebruiker graag informeren over wat er gebeurd is. Omdat http stateless is, moet ik voor de header refresh een querystring bouwen waarlangs ik aangeef welk bericht ik wil laten zien aan de gebruiker - site.com/admin.php?msg=1:
Dit werkt goed, maar werkt niet als ik meer specifieke berichten aan de gebruiker wil tonen, zoals: "De categorie Appels is succesvol verplaatst naar de categorie Fruit."
Nu kan dit ook wel via de querystring (ik geef dan gewoon een hele zin door ofzo), maar mijn vraag is of het niet netter kan: vlak voor de header refresh stop ik het specifieke bericht in een sessie of cookie, welke ik na de refresh uitlees. Probleem hierbij is alleen: het bericht moet alleen getoond worden meteen na de refresh, dus ik zal iets moeten inbouwen waardoor ik kan zien of het bericht al eerder is weergegeven, om dan het bericht weer uit de sessie of cookie te verwijderen.
Mijn vraag is: denk ik nu te moeilijk en moet ik alle mededelingen voor de gebruiker doorgeven via de querystring of wordt een methode als hierboven beschreven wel vaker toegepast?
Als de gebruiker middels het form een categorie toevoegt aan de boom, wil ik na de header refresh de gebruiker graag informeren over wat er gebeurd is. Omdat http stateless is, moet ik voor de header refresh een querystring bouwen waarlangs ik aangeef welk bericht ik wil laten zien aan de gebruiker - site.com/admin.php?msg=1:
PHP:
1
2
3
4
5
6
7
8
9
| if (isset($_GET['msg'])) { switch ($msg) { case 1: echo 'De categorie is succesvol toegevoegd aan de boom'; break; case 2: echo 'De categorie is succesvol verwijderd'; case 3: // etc... } } |
Dit werkt goed, maar werkt niet als ik meer specifieke berichten aan de gebruiker wil tonen, zoals: "De categorie Appels is succesvol verplaatst naar de categorie Fruit."
Nu kan dit ook wel via de querystring (ik geef dan gewoon een hele zin door ofzo), maar mijn vraag is of het niet netter kan: vlak voor de header refresh stop ik het specifieke bericht in een sessie of cookie, welke ik na de refresh uitlees. Probleem hierbij is alleen: het bericht moet alleen getoond worden meteen na de refresh, dus ik zal iets moeten inbouwen waardoor ik kan zien of het bericht al eerder is weergegeven, om dan het bericht weer uit de sessie of cookie te verwijderen.
Mijn vraag is: denk ik nu te moeilijk en moet ik alle mededelingen voor de gebruiker doorgeven via de querystring of wordt een methode als hierboven beschreven wel vaker toegepast?
[ Voor 5% gewijzigd door Reveller op 11-12-2004 14:07 ]
"Real software engineers work from 9 to 5, because that is the way the job is described in the formal spec. Working late would feel like using an undocumented external procedure."