Ik heb nu 3 scripts gemaakt, waar ik bovenin (in de header) de gebruikersnaam heb staan van degene die is ingelogd. Ik heb deze in $_SESSION ['gebruikersnaam'] gezet, zodat de andere 2 scripts ook deze gebruikersnaam tonen.
Maar als ik nu in een tweede venster ook inlog met een andere gebruikersnaam... dan gaat het mis, want nu staat er in het eerste scherm ook opeens de gebruikersnaam van het tweede scherm.
Hoe los ik dit nu op ?
Hoe kan ik de gebruikersnaam laten gelden als een soort constante voor alle drie de scripts ? Met $_SESSION lukt dat dus niet ?
De session geldt voor de verbinding tussen de browser en de server.
Dus als jij in een ander venster inlogt onder een andere naam dan wijzig je dezelfde session.
Wat jij wilt kan alleen met verschillende browsers.
Dus inloggen met Firefox en inloggen met Chrome bijvoorbeeld.
>> Maar als ik nu in een tweede venster ook inlog met een andere gebruikersnaam... dan gaat het mis
Je zou dus ook niet meer moeten kunnen inloggen op het moment dat je al bent ingelogd. Bij het inlogscherm dien je dus te controleren of iemand al is ingelogd. Zo ja, dan kom je automatisch in de ingelogde omgeving en wordt het inlogscherm dus 'overgeslagen'.
Voor het opslaan en hergebruiken van variabelen tijdens een sessie (ofwel sessievariabelen) gebruik je normaliter $_SESSION en geen van de andere opties die jij noemt. (Overigens heb je alle opties verkeerd gespeld, dus die zullen geen van allen werken, maar dat even terzijde.)
Beter is om te controleren of er al een gebruikersnaam is ingevuld.
<?php
// start altijd eerst je sessie, anders heb je niet de beschikking over deze informatie
// je gebruikt session_start tevens om een eerder gestarte sessie voort te zetten
session_start();
// ik ga er even van uit dat je de volgende controle uitvoert als je opnieuwe probeert in te loggen terwijl je al ingelogd bent
if (isset($_SESSION['gebruikersnaam'])) {
header('Location: jebentalingelogd.htm');
exit;
}
?>
En misschien nog beter is om het id van een gebruiker op te slaan, en elke page-request deze informatie opnieuw op te halen uit de database. Als je namelijk in je profiel-gegevens je gebruikersnaam kan aanpassen, en je hebt deze informatie opgeslagen in je sessie, dan blijft verouderde informatie in je sessie "hangen" totdat je opnieuw inlogt. Tenzij je dus elke page-access opnieuw alle data ophaalt uit je database.