Ik heb 2 verschillende formulieren op mijn (WordPress) website staan, die uit 1 script (plugin) komen.
Nu maak ik voor beide formulieren gebruik van een sessie variabele, dus in totaal heb ik 2 variabelen: 1 per formulier.
Ik destroy de sessie achteraf niet, unset alleen de variabele zodra formulier succesvol verstuurd is.
Nu vraag ik me af of het überhaupt handig is om 1 sessie hiervoor te gebruiken, of kan ik beter per formulier een sessie starten, met een eigen sessienaam? Bovendien bestaat voor zover ik weet ook de kans dat andere onderdelen van mijn website (plugins) dezelfde sessie gebruiken? Of is dit onjuist?
Compartimenteer je sessie in subarrays? Meerdere sessies starten lijkt mij geen goed idee. Mogelijk wil je namelijk ook op een zeker moment account-informatie onthouden, zoals een user id. Maak hiertoe subarrays aan:
- account (voor account informatie, of "user" ofzo)
- form(s) (voor formulierinformatie)
- <unieke formuliernaam #1> (zodat je per form informatie kunt onthouden)
- <unieke formuliernaam #2> (zodat je per form informatie kunt onthouden)
- etc.
- etc.
Sla dus bijvoorbeeld tijdelijk informatie van je contactformulier op in $_SESSION['form']['contact'] ofzo.
Ik gebruik nu dus 2 variabelen, die worden aangemaakt in 2 verschillende bestanden (form-1.php en form-2.php).
Ik kan zien dat beide variabelen in dezelfde sessie zitten (want zelfde sessie ID), als beide formulieren op dezelfde pagina staan. Nog geen test gedaan als formulieren op verschillende pagina's staan. Kom ik op terug. UPDATE: ook hetzelfde sessie ID als formulieren op verschillende pagina's staan.
Wat is het voordeel om een array te gebruiken? Ik kan mijn variabelen nu ook eenvoudig ophalen.
Stop gewoon de data van de verschillende formulieren in verschillende arrays. Verzin daartoe een unieke naam voor elk formulier.
Stop bijvoorbeeld de data van formulier #1 in $_SESSION['form']['formulier_een'] en de data van formulier #2 in $_SESSION['form']['formulier_twee'].
Het voordeel van een array? Zodat je deze data in afzondering kunt behandelen? En $_SESSION is al een array, dus waarom zou je het niet als zodanig gebruiken?