Toon posts:

[php] Script kan sessie niet beeindigen...

Pagina: 1
Acties:
  • 41 views sinds 30-01-2008

Verwijderd

Topicstarter
ik heb het volgende script om mijn gebruikers uit te laten loggen


code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
    var_dump($_SESSION);
    unset($_COOKIE['sduserid']);
    unset($_COOKIE['sduser']);
    unset($_COOKIE['sdsessionid']);
    unset($_COOKIE['sdusertime']);
    unset($_COOKIE['sdusercheck']);

    unset($_SESSION["userid"]);
    unSet($userid);
    unSet($_SESSION["user"]);
    unSet($user);
    unSet($_SESSION["sessionid"]);
    unSet($sessionid);
    unSet($_SESSION["userrights"]);
    unSet($userrights);

    var_dump($_SESSION);


nu zie je dat bij de 2e dump alles weg is.

zie als ik het run..
code:
1
2
3
4
5
6
7
array(4) { 
["userid"]=> &string(1) "1" 
["user"]=> &string(7) "xtentic" 
["sessionid"]=> &string(74) "hZnAVJIwElvuA2AsivkTU1yLYeDwCqmapg8t1LsnmBxewumCfMoEJiCTHpvsmX1VrfBpabguf4" 
["userrights"]=> &string(3) "127" } 

array(0) { }


Hier run in de 'logout' functie
code:
1
2
3
4
5
6
7
8
if (isSet($_GET['page'])) {
    switch ($_GET['page']) {
    case "logoff":
        logOut();
        unset($_SESSION);
        header("location: index.php");
    }
}


en wanneer ik terug ga naar members.php is de user nog steeds ingelogt? hoe kan dit nu?? :D

[ Voor 14% gewijzigd door Verwijderd op 04-01-2003 17:57 ]


  • martinvw
  • Registratie: Februari 2002
  • Laatst online: 14-12-2025
bekend probleem gebruik:

session_unregister('varname');

[ Voor 9% gewijzigd door martinvw op 04-01-2003 19:05 ]


Verwijderd

of session_destroy();

  • martinvw
  • Registratie: Februari 2002
  • Laatst online: 14-12-2025
session_destroy vernietigd alle sessie variabele session_unregister kan een specifieke var doen, wat je nodig hebt is natuurlijk afhankelijk van je eigen behoefte.

[ Voor 6% gewijzigd door martinvw op 04-01-2003 19:05 ]


Verwijderd

mocht je nou nog een oude php < 4.0.6 hebben (god forbid :)) dan moet je wel unset() gebruiken.

  • martinvw
  • Registratie: Februari 2002
  • Laatst online: 14-12-2025
weet je dat zeker :?

Het komt op mij over php.net lezende dat het de bedoeling was dat t tegenwoordig zou werken met een unset maar dat dat niet gelukt is.

En dat je daarom nog steeds de oude manier moet gebruiken :?

[ Voor 17% gewijzigd door martinvw op 04-01-2003 19:14 ]


  • Shagura
  • Registratie: Augustus 2001
  • Laatst online: 21-08 16:57
M4rt1nvW schreef op 04 januari 2003 @ 19:13:
weet je dat zeker :?

Het komt op mij over php.net lezende dat het de bedoeling was dat t tegenwoordig zou werken met een unset maar dat dat niet gelukt is.

En dat je daarom nog steeds de oude manier moet gebruiken :?
Je moet gebruik maken van unset als je gebruik maakt van het makkelijkere $_SESSION en niet van session_register, dan behoor je wel session_unregister te gebruiken. Dit behoor je echter alleen bij specifieke waarden te gebruiken (en dus niet unset($_SESSION)). Als je de hele array wil dumpen mag je gewoon session_destroy() gebruiken...

Hmz, nu ik de handleiding nog eens lees zeggen ze dat je ipv session_unset() nu $_SESSION = array() zou moeten gebruiken. Unset($_SESSION) zou gewoon nooit gemoeten hebben.
Er schijnt ook nog een subtiel verschil te zijn tussen session_unset() en session_destroy en dat is dat session_destroy ook echt alles op de schijf weghaalt ofzo, het nut van unset ontgaat mij dan echter.

[ Voor 41% gewijzigd door Shagura op 04-01-2003 22:52 . Reden: handleiding gelezen :) ]


Verwijderd

Topicstarter
session_destroy lijkt me uitermate perfect voor dit probleem, maar ik heb het reeds opgelost door de login script van Picstore (zie me sig) te verbouwen tot die van me aankomende site :D

Vriendelijk bedankt allen!... ik heb wederom wat geleerd! :)

[ Voor 15% gewijzigd door Verwijderd op 05-01-2003 00:14 ]


  • martinvw
  • Registratie: Februari 2002
  • Laatst online: 14-12-2025
Shagura schreef op 04 januari 2003 @ 22:45:
[...]

Je moet gebruik maken van unset als je gebruik maakt van het makkelijkere $_SESSION en niet van session_register, dan behoor je wel session_unregister te gebruiken. Dit behoor je echter alleen bij specifieke waarden te gebruiken (en dus niet unset($_SESSION)). Als je de hele array wil dumpen mag je gewoon session_destroy() gebruiken...

Hmz, nu ik de handleiding nog eens lees zeggen ze dat je ipv session_unset() nu $_SESSION = array() zou moeten gebruiken. Unset($_SESSION) zou gewoon nooit gemoeten hebben.
Er schijnt ook nog een subtiel verschil te zijn tussen session_unset() en session_destroy en dat is dat session_destroy ook echt alles op de schijf weghaalt ofzo, het nut van unset ontgaat mij dan echter.
Uit de usernotes op php.net maak ik toch echt op dat unset niet naar behoren werkt en uit eigen ervaring bleek een sessie na refresh weer te bestaan, dus daarom heb ik die unset bij sessie opgegeven en hij wordt wel gewoon geset met
PHP:
1
$_SESSION['var'] = "blaat"


Dus jah, ik weet t ook niet, zal wel een bugje zijn :?
http://bugs.php.net/bug.php?id=18996

[ Voor 3% gewijzigd door martinvw op 05-01-2003 01:35 ]


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

drm

f0pc0dert

tja, die manual en die usernotes blijven lastig....

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

Pagina: 1

Dit topic is gesloten.