Vraag & Antwoord
sessions
8 antwoorden
- Wie kan me op weg helpen met een simpel (niet cookie-gebaseerde) session-script…
Ik heb me al suf gelezen op php.net en phpfreakz.nl
Hier worden wel voorbeelden gegeven maar van "oude" scripts
session_register mag niet meer terwijl dat nog wel in hun voorbeelden gebruikt wordt. phpfreakz vind ik dusdanig onoverzichtelijk dat ik er niet uitkom hoe dit aangepast moet worden…
zou iemand mij een paar regels kunnen geven van 2 phpbestanden waarin dit mij duidelijk gemaakt kan worden?
(of mij het systeem van phpbb een beetje uitleggen hoe het daar werkt?)
De rest dokter ik hopelijk zelf wel uit…. ik heb als het ware ff een opstapje in de goede richting nodig
groeten
Sander - Het phpBB systeem session systeem is best wel complex. In de phpbb_sessions table staan unieke session_ids voor elke gebruiker, met daarin ook of deze gebruiker ingelogd is, welk userid hierbij gebruikt is, en, heel belangrijk, de verlooptijd. De verstreken sessies worden automatisch door het bestand includes/sessions.php autmatisch verwijderd.
Kijk voor $_SESSION uitleg eens op http://nl2.php.net/manual/en/function.session-start.php, dit legt het gebruik van de $_SESSION variablen uit. Of zie de twee scriptjes hierbeneden. De eerste doet het 'inloggen', en de tweede kijkt of je bent ingelogd en als dit zo is, je username in een mooi persoonlijk berichtje zetten
[code:1:3cf94d2cfc]// Start of ga verder met een bestaande sessie
session_start();
// De gebruiker heet nu eventjes 'Vic', en hij is ingelogd laten we zeggen
$_SESSION['logged_in'] = true;
$_SESSION['username'] = 'Vic';
// Ziezo, we zijn klaar[/code:1:3cf94d2cfc]
[code:1:3cf94d2cfc]// Start of ga verder met een bestaande sessie
session_start();
if ( isset($_SESSION['logged_in]) )
{
print "Hallo " . $_SESSION['username'] . ", u bent aangemeld";
}
else
{
print "U bent niet aangemeld….";
}
[/code:1:3cf94d2cfc]
Ik hoop dat dit je op weg helpt
Groetjes,
Vic - wauw das snel!
dat gaat me zeker op weg helpen….
dankje! - graag gedaan
- Alle $_SESSION variablen kunnen inderdaad uitgewisseld worden tussen de scripts.
Wat je bedoelt met die user_session tabel weet ik zo even niet…
Vic - tabel user_session of iets dergelijks…
en in die tabel alles bijhouden
dat moet toch kunnen? - Je kunt inderdaad een aparte tabel gebruiken om alle gegevens op te slaan; wel moet je zorgen dat je zorgt dat iedere sessie een uniek session ID krijg, met code zoals dit:
[code:1:176249edf0]$_SESSION['session_id'] = md5(uniqid(time(), true));[/code:1:176249edf0]
Je kunt dan het session_id uitwisselen tussen die scripts, en die scripts dan alle gegevens behorende tot die sessie uit de tabel laten halen.
Vergeet wel niet om alle 'verlopen' sessies te verwijderen, en bij aanroep van een script moet de verloopdatum van zo'n sessie ook steed bijgewerkt worden.
Als je niet verder komt hoor ik het wel
Vic
Beantwoord deze vraag
Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.