Toon posts:

[PHP] Session opslaan -> later weer opvraagbaar

Pagina: 1
Acties:
  • 358 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Ik ben nu bezig om een soort login-systeem te maken (jaja, ben nog niet zover in PHP :P )...

Ik wil gebruik maken van sessies :) Het registeren van vars en het inloggen werkt allemaal :) Maar nu dit: de php sessie is geldig zolang je je browser open hebt... Ik wil dus het sessie id opslaan, en later (als de gebruiker weer terugkomt) die sessie weer ophalen, en zo weer verder gaan :)

Hoe doe ik dit?

Thnx!

PS. Ik heb de search gebruikt, maar kon niks relevants vinden :)

  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

http://www.php.net/manual/en/ref.session.php
session.cookie_lifetime specifies the lifetime of the cookie in seconds which is sent to the browser. The value 0 means "until the browser is closed." Defaults to 0.
:?

Doet iets met Cloud (MS/IBM)


Verwijderd

Topicstarter
Hmm, maar is die sessie dan ook later weer opvraagbaar?

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

CowMike:
Hmm, maar is die sessie dan ook later weer opvraagbaar?
Sla een sessionID ofzo gewoon los van je session op in een cookie, en aan die sessionID gekoppeld op de server de rest van de gegevens. Je kunt je dan alleen afvragen waar je nou een session voor gebruikt, maar goed.

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


Verwijderd

Topicstarter
Op maandag 11 februari 2002 18:38 schreef drm het volgende:

[..]

Sla een sessionID ofzo gewoon los van je session op in een cookie, en aan die sessionID gekoppeld op de server de rest van de gegevens. Je kunt je dan alleen afvragen waar je nou een session voor gebruikt, maar goed.
Hoe bedoel je? Aan die sessie gekoppeld de rest van de gegevens... Zo ver was ik ook al :) Die session_id gewoon opslaan in een cookie, en dan als de gebruiker weer terugkomt, dat session_id weer opvragen uit dat cookie (als die tenminste bestaat ;) ), maar dan weet ik dus niet hoe ik die gegevens ophaal...

Misschien wat onduidelijk :P

Gebruiker logt in -> username ed worden in sessie opgeslagen -> session_id wordt opgeslagen in cookie -> gebruiker verlaat site, maar cookie met session_id blijft bewaard...

Bij die laatste stap dus: hoe zeg ik tegen dat script dat ie de gegevens uit de sessie met als session_id de id uit de cookie moet halen?

Whaaaa, irri dit :P

Verwijderd

Op maandag 11 februari 2002 18:34 schreef CowMike het volgende:
Hmm, maar is die sessie dan ook later weer opvraagbaar?
dat is dus het hele idee achter die session lifetime...
het werkt dan net zoals koekjes, je stelt in hoe lang ze geldig zijn. Het lastige met sessions is alleen dat je het alleen in de php.ini moet instellen, dus dat je niet de gebruiker kan laten kiezen... dan zul je dus toch met koekjes moeten werken.

Verwijderd

Topicstarter
Op maandag 11 februari 2002 18:46 schreef jurriebur het volgende:

[..]

dat is dus het hele idee achter die session lifetime...
het werkt dan net zoals koekjes, je stelt in hoe lang ze geldig zijn. Het lastige met sessions is alleen dat je het alleen in de php.ini moet instellen, dus dat je niet de gebruiker kan laten kiezen... dan zul je dus toch met koekjes moeten werken.
Hoe bedoel je dit :? Dus dat je de gebruikers niet kan laten kiezen :? :D

Misschien iets makkelijker: bij VBB blijft het session_id ook bewaard in een cookie: nou, zo wil ik t ook :7 :)

  • chem
  • Registratie: Oktober 2000
  • Laatst online: 27-08 13:53

chem

Reist de wereld rond

let wel op dat het systeem zelf /tmp af en toe opruimt, en je dus je sessions alsnog kwijt bent.

Klaar voor een nieuwe uitdaging.


Verwijderd

Topicstarter
Op maandag 11 februari 2002 18:51 schreef chem het volgende:
let wel op dat het systeem zelf /tmp af en toe opruimt, en je dus je sessions alsnog kwijt bent.
Hmm, zoals bij een reboot?

  • chem
  • Registratie: Oktober 2000
  • Laatst online: 27-08 13:53

chem

Reist de wereld rond

naar ik meen doen zowel php als de meeste unix systeem dat zelf regelmatig.

Klaar voor een nieuwe uitdaging.


Verwijderd

Topicstarter
Hmm, das irri :(

Niks tegen te doen zeker? :'(

  • Nazgul
  • Registratie: Februari 2000
  • Laatst online: 11-10-2022

Nazgul

Digital Pizza Crew

Je kunt eens gaan spelen met session_set_save_handler.
Daarmee is het mogelijk om zelf een handler te schrijven voor het session mechanisme. Dan kun je de waardes bijvoorbeeld in een DB opslaan, of op een andere plaats dan /tmp op de schijf.

No trees were killed in the sending of this message. However a large number of electrons were terribly inconvenienced.


Verwijderd

Topicstarter
Op maandag 11 februari 2002 19:16 schreef Nazgul het volgende:
Je kunt eens gaan spelen met session_set_save_handler.
Daarmee is het mogelijk om zelf een handler te schrijven voor het session mechanisme. Dan kun je de waardes bijvoorbeeld in een DB opslaan, of op een andere plaats dan /tmp op de schijf.
Hmm, ik snap je niet helemaal :D Leg eens uit (heb die url wel gelezen ja ;))

Verwijderd

Topicstarter
Hmm, en toen niemand meer :P

  • me1299
  • Registratie: Maart 2000
  • Laatst online: 14-09 10:21

me1299

$ondertitel

Is toch wel interresant dit. Ik vraag me af hoe je iemand's sessie weer registeert zodra je z'n session id weer hebt opgeslagen.

Moet je dan in de database alle session variables opslaan en die dan weer registeren?

Het maakt eigenlijk niet uit wat je bewuste geest doet, omdat je onderbewuste automatisch precies dat doet wat het moet doen


Verwijderd

Topicstarter
Idd, dat vroeg ik me ook al af....

Misschien beetje onduidelijk: VBB maakt er gebruik van :) Nou, zo wil ik het dus ook ;)

  • djc
  • Registratie: December 2001
  • Laatst online: 08-09-2025

djc

Die session_set_save_handler() kun je dus gebruiken om de data op een andere manier op te slaan. Dat betekent dus dat je de data via die functie bijvoorbeeld op kan slaan in je DB, waar PHP ze niet zal verwijderen.

Rustacean


Verwijderd

Op dinsdag 12 februari 2002 00:12 schreef DeathKnight het volgende:
Is toch wel interresant dit. Ik vraag me af hoe je iemand's sessie weer registeert zodra je z'n session id weer hebt opgeslagen.

Moet je dan in de database alle session variables opslaan en die dan weer registeren?
Volgens mij is het mogelijk door de laatste SESSIONID op te slaan in bijv. MySQL, voor elke user, en in een cookie de laatste SESSIONID zetten bij de gebruiker met als cookiename zijn username ofzow. De volgende keer dat hij op die pagina komt, kijk je of username gezet is (die cookie dus) en vergelijk je de waarde in e cookie met de opgeslagen SESSIONID

  • KlaasB
  • Registratie: Juli 2000
  • Laatst online: 01-07-2024
Met sessies onthoud ik een gebruiker zijn UID en Encrypted password. Bij het inloggen geef ik de gebruiker de keuze om dit op de slaan in een cookie.
Dat doe ik dan gewoon met setcookie.
PHP:
1
2
3
4
<?
 setcookie ("cookie1",$uid,time()+94608000,"/",".domein.nl", 0);
 setcookie ("cookie2",$passwd,time()+94608000,"/",".domein.nl", 0);
?>

In de header van een document check eerst of er de gegevens in de session zitten, zo niet check dan de cookies, en staat daar ook niks in dan is de gebruiker niet ingelogd.
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?
// Start de sessie
 session_start();
 if (!$PHPSESSID) {
  session_register('uid');
  session_register('passwd');
 } else if ((!$uid) || (!$passwd)) {
  session_register('uid');
  session_register('passwd');
 }
 
 if ((!$uid) AND (!$passwd)) {
  $uid = $HTTP_COOKIE_VARS["cookie1"];
  $passwd = $HTTP_COOKIE_VARS["cookie2"]; } 
?>

It's not a bug, it's a feature


Verwijderd

Topicstarter
Oh zo, ik snap em al ;)

Bedankt! *D
Pagina: 1