Likes Likes:  0
Resultaten 1 tot 15 van de 15
Geen
  1. #1
    Bert Bierhuis
    PHP: session_destroy()
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    PHP: session_destroy()

    Hallo,

    Ik heb in een pagina de volgende code opgenomen om een sessie te
    beeindigen:

    __________
    <?php
    session_start();
    session_destroy();
    ?>
    __________

    Als ik vervolgens naar een pagina ga die gebruik maakt van sessies,
    blijkt steeds de sessie nog te bestaan. Hoe zou dit kunnen komen
    (valkuilen?)

    Grtn, Bert

  2. #2
    Daniel Tryba
    PHP: session_destroy()
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    Re: PHP: session_destroy()

    Bert Bierhuis <bertbierhuis2[NOSPAM]@hotmail.com> wrote:
    > Ik heb in een pagina de volgende code opgenomen om een sessie te
    > beeindigen:


    > session_destroy();


    > Als ik vervolgens naar een pagina ga die gebruik maakt van sessies,
    > blijkt steeds de sessie nog te bestaan. Hoe zou dit kunnen komen
    > (valkuilen?)


    De sessie blijft inderdaad bestaan, immers:

    <q src='http://nl.php.net/manual/en/function.session-destroy.php'>
    session_destroy() destroys all of the data associated with the current
    session. It does not unset any of the global variables associated with
    the session, or unset the session cookie.
    </q>

    Als het goed is is de data dus verdwenen.

    --

    Daniel Tryba


  3. #3
    Inca
    PHP: session_destroy()
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    Re: PHP: session_destroy()

    Daniel Tryba wrote:
    > <q src='http://nl.php.net/manual/en/function.session-destroy.php'>
    > session_destroy() destroys all of the data associated with the current
    > session. It does not unset any of the global variables associated with
    > the session, or unset the session cookie.
    > </q>
    >
    > Als het goed is is de data dus verdwenen.


    Bij mij verscheen de data gewoon op het scherm na een session_destroy().
    Getest met een foreach($_SESSION). Niet alleen de variabelen, ook de inhoud
    was er nog.

    Op het lokale systeem gebeurde dit niet, maar op een systeem via
    netwerkverbinding wel.

    Mijn oplossing was de Session maar gewoon door te laten leven en handmatig
    het betreffende veld op 0 zetten...
    --
    Inca



  4. #4
    Daniel Tryba
    PHP: session_destroy()
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    Re: PHP: session_destroy()

    Inca <shadow*movements@wanadoo.nospam.invalid> wrote:
    > Daniel Tryba wrote:
    >> <q src='http://nl.php.net/manual/en/function.session-destroy.php'>
    >> session_destroy() destroys all of the data associated with the current
    >> session. It does not unset any of the global variables associated with

    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^
    >> the session, or unset the session cookie.

    ^^^^^^^^^^^
    >> </q>
    >>
    >> Als het goed is is de data dus verdwenen.

    >
    > Bij mij verscheen de data gewoon op het scherm na een session_destroy().
    > Getest met een foreach($_SESSION). Niet alleen de variabelen, ook de inhoud
    > was er nog.


    Op die pagina zelf klopt dat dan ook, ik zal even de regel onderstrepen
    welke vermeldt dat dat het te verwachten resultaat is van een
    session_destroy()

    --

    Daniel Tryba


  5. #5
    uws
    PHP: session_destroy()
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    Re: PHP: session_destroy()

    I <c1lbhu$7pt$1@news.tue.nl>, Daniel Tryba skrev:
    > Inca <shadow*movements@wanadoo.nospam.invalid> wrote:
    >> Daniel Tryba wrote:
    >>> <q src='http://nl.php.net/manual/en/function.session-destroy.php'>
    >>> session_destroy() destroys all of the data associated with the current
    >>> session. It does not unset any of the global variables associated with

    > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^
    >>> the session, or unset the session cookie.

    > ^^^^^^^^^^^
    >>> </q>
    >>> Als het goed is is de data dus verdwenen.

    >> Bij mij verscheen de data gewoon op het scherm na een session_destroy().
    >> Getest met een foreach($_SESSION). Niet alleen de variabelen, ook de inhoud
    >> was er nog.

    > Op die pagina zelf klopt dat dan ook, ik zal even de regel onderstrepen
    > welke vermeldt dat dat het te verwachten resultaat is van een
    > session_destroy()


    Wat OP wel zou kunnen doen is:

    foreach ($_SESSION as $i -> $d) { unset($_SESSION[$i]); }

    Ik weet niet of je een superglobal ook kunt unset()ten.

    dag, Wouter

    --
    :wq mail uws@xs4all.nl

    i awake to see that no one is free :: we're all fugitives -- coldplay

  6. #6
    Daniel Tryba
    PHP: session_destroy()
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    Re: PHP: session_destroy()

    uws <uws@xs4all.invalid> wrote:
    >>>> <q src='http://nl.php.net/manual/en/function.session-destroy.php'>

    >
    > Wat OP wel zou kunnen doen is:
    >
    > foreach ($_SESSION as $i -> $d) { unset($_SESSION[$i]); }


    Wat een zinloze loop. $_SESSION=array();

    Schaamteloos gejat van voorbeeld 2 van bovenstaande URL.

    --

    Daniel Tryba


  7. #7
    Inca
    PHP: session_destroy()
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    Re: PHP: session_destroy()

    Daniel Tryba wrote:
    >> Bij mij verscheen de data gewoon op het scherm na een
    >> session_destroy(). Getest met een foreach($_SESSION). Niet alleen de
    >> variabelen, ook de inhoud was er nog.

    >
    > Op die pagina zelf klopt dat dan ook, ik zal even de regel
    > onderstrepen welke vermeldt dat dat het te verwachten resultaat is
    > van een session_destroy()


    Snap ik niet, er staat toch
    "session_destroy() destroys all of the data associated with the current
    session"
    Welke data verwijdert het wel, als het niet de inhoud is van
    $_SESSION["var"] etc?
    En waarom werkt het op de ene machine wel en op de andere niet?
    (PHP-versies, IIS-versies, code en windowsversies allemaal hetzelfde)
    --
    Inca



  8. #8
    Daniel Tryba
    PHP: session_destroy()
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    Re: PHP: session_destroy()

    Inca <shadow*movements@wanadoo.nospam.invalid> wrote:
    > Snap ik niet, er staat toch
    > "session_destroy() destroys all of the data associated with the current
    > session"


    Maar er staat ook dat de globale vars (_SESSION dus) niet worden
    aangetast.

    > Welke data verwijdert het wel, als het niet de inhoud is van
    > $_SESSION["var"] etc?


    Het vernietigt dat session data die door de session handler wordt bij
    gehouden, dus het roept de destroy methode aan van het session object
    als het ware (zie bv
    http://nl.php.net/manual/en/function...ve-handler.php). Deze
    data is bij het aanroepen van session_start al in de instantie scope van
    de huidige script aanroep geladen (in _SESSION dus).

    > En waarom werkt het op de ene machine wel en op de andere niet?
    > (PHP-versies, IIS-versies, code en windowsversies allemaal hetzelfde)


    Defineer 'werkt het wel/niet'! Het is mij nog nooit opgevallen dat
    session_destroy anders werkt dan de manual page beschrijft.

    --

    Daniel Tryba


  9. #9
    Warden Dave
    PHP: session_destroy()
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    Re: PHP: session_destroy()

    "Inca" <shadow*movements@wanadoo.NOSPAM.invalid> wrote:

    > Snap ik niet, er staat toch
    > "session_destroy() destroys all of the data associated with the current
    > session"
    > Welke data verwijdert het wel, als het niet de inhoud is van
    > $_SESSION["var"] etc?


    De data, mag je hopen. ;-) Het idee is nu juist dat je data niet alleen tijdens
    de uitvoering van het script in die variabelen aanwezig is, maar voor her-gebruik
    in een andere pagina tijdelijk ergens wordt opgeslagen. Dat kan, aan de kant van
    de server in geheugen, database of 'gewoon' bestand zijn. Zie ook: http://nl2.php.net/manual/en/functio...-save-path.php en
    http://nl2.php.net/manual/en/functio...ve-handler.php


    WD



  10. #10
    Inca
    PHP: session_destroy()
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    Re: PHP: session_destroy()

    Daniel Tryba wrote:
    >> Snap ik niet, er staat toch
    >> "session_destroy() destroys all of the data associated with the
    >> current session"

    >
    > Maar er staat ook dat de globale vars (_SESSION dus) niet worden
    > aangetast.


    Dan snap ik de globale vars niet helemaal. Ik dacht dat $_SESSION een
    superglobal is (die dan ook blijft bestaan) maar de specifieke velden zijn
    geen echte variabelen, dacht ik.

    >> Welke data verwijdert het wel, als het niet de inhoud is van
    >> $_SESSION["var"] etc?

    >
    > Het vernietigt dat session data die door de session handler wordt bij
    > gehouden, dus het roept de destroy methode aan van het session object
    > als het ware (zie bv
    > http://nl.php.net/manual/en/function...ve-handler.php).
    > Deze data is bij het aanroepen van session_start al in de instantie
    > scope van de huidige script aanroep geladen (in _SESSION dus).


    (Groot vraagteken...) Heb je hier een hele basic uitleg voor? Ik dacht dat
    ik het idee van sessions aardig door had maar ik kan dit helemaal niet
    plaatsen.

    >> En waarom werkt het op de ene machine wel en op de andere niet?
    >> (PHP-versies, IIS-versies, code en windowsversies allemaal hetzelfde)

    >
    > Defineer 'werkt het wel/niet'! Het is mij nog nooit opgevallen dat
    > session_destroy anders werkt dan de manual page beschrijft.


    Het gaat om een basis log-in/log-uit-functie. Ik heb geen precieze tests
    gedaan en kan dat helaas nu ook niet doen, dus meer details dan ik nu geef
    heb ik helaas niet.

    Comp 1:
    Ik roep een session_destroy aan en redirect naar een andere pagina. Als ik
    nu een pagina aanroep die checkt of de sessie bestaat en of een bepaald veld
    is ingevuld krijg ik een melding 'niet ingelogd'. Dit impliceert dat de
    sessie is verdwenen, of de inhoud van het veld is 0.

    Comp 2:
    Code is identiek:session_destroy en dan redirect. Als ik nu een pagina
    aanroep met een sessie-check, krijg ik gewoon de pagina te zien. Met een
    foreach-loopje kan ik dan alle sessie-variabelen + de inhoud op mijn scherm
    krijgen.

    --
    Inca



  11. #11
    Daniel Tryba
    PHP: session_destroy()
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    Re: PHP: session_destroy()

    Inca <shadow*movements@wanadoo.nospam.invalid> wrote:
    > Dan snap ik de globale vars niet helemaal. Ik dacht dat $_SESSION een
    > superglobal is (die dan ook blijft bestaan) maar de specifieke velden zijn
    > geen echte variabelen, dacht ik.


    Een superglobal is niets anders dan een variabele die binnen elke scope
    altijd beschikbaar is.

    >> Het vernietigt dat session data die door de session handler wordt bij
    >> gehouden, dus het roept de destroy methode aan van het session object
    >> als het ware (zie bv
    >> http://nl.php.net/manual/en/function...ve-handler.php).
    >> Deze data is bij het aanroepen van session_start al in de instantie
    >> scope van de huidige script aanroep geladen (in _SESSION dus).

    >
    > (Groot vraagteken...) Heb je hier een hele basic uitleg voor? Ik dacht dat
    > ik het idee van sessions aardig door had maar ik kan dit helemaal niet
    > plaatsen.


    Dit was de basic uitleg. session_start laad gegevens uit de
    session"database" naar de _SESSION variabele, session_destroy gooit de
    gegevens uit de session"database" weg.

    [knip]
    > Het gaat om een basis log-in/log-uit-functie. Ik heb geen precieze tests
    > gedaan en kan dat helaas nu ook niet doen, dus meer details dan ik nu geef
    > heb ik helaas niet.
    >
    > Comp 1:
    > Ik roep een session_destroy aan en redirect naar een andere pagina. Als ik
    > nu een pagina aanroep die checkt of de sessie bestaat en of een bepaald veld
    > is ingevuld krijg ik een melding 'niet ingelogd'. Dit impliceert dat de
    > sessie is verdwenen, of de inhoud van het veld is 0.
    >
    > Comp 2:
    > Code is identiek:session_destroy en dan redirect. Als ik nu een pagina
    > aanroep met een sessie-check, krijg ik gewoon de pagina te zien. Met een
    > foreach-loopje kan ik dan alle sessie-variabelen + de inhoud op mijn scherm
    > krijgen.


    Dit valt buiten de scope van het session_destroy probleem zoals reeds
    besproken (immers je redirect naar een andere pagina), indien je
    bovenstaande resultaten kan reproduceren heb je een bug gevonden, tijd
    om die te submitten dus (en even checken of die er niet al is).

    --

    Daniel Tryba


  12. #12
    Inca
    PHP: session_destroy()
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    Re: PHP: session_destroy()

    Daniel Tryba wrote:
    > Inca <shadow*movements@wanadoo.nospam.invalid> wrote:
    >> Dan snap ik de globale vars niet helemaal. Ik dacht dat $_SESSION een
    >> superglobal is (die dan ook blijft bestaan) maar de specifieke
    >> velden zijn geen echte variabelen, dacht ik.

    >
    > Een superglobal is niets anders dan een variabele die binnen elke
    > scope altijd beschikbaar is.


    Maar is een key in een array ook een variabele? (Abstracte discussie zo...)

    >> (Groot vraagteken...) Heb je hier een hele basic uitleg voor?

    >
    > Dit was de basic uitleg.


    Ow )-:

    [comp1 gooit sessie weg, comp2 niet]
    > Dit valt buiten de scope van het session_destroy probleem zoals reeds
    > besproken (immers je redirect naar een andere pagina), indien je
    > bovenstaande resultaten kan reproduceren heb je een bug gevonden, tijd
    > om die te submitten dus (en even checken of die er niet al is).


    Even voor de zekerheid:
    zoals ik het nu beschrijf is comp1 zoals het zou moeten werken volgens de
    documentatie?
    Maar zonder redirect zou het als comp2 werken, waarbij de sessie weg is,
    maar er nog wel een kopie is van de session-variabelen? (Het
    'pass-by-value-idee' zeg maar)
    --
    Inca



  13. #13
    Daniel Tryba
    PHP: session_destroy()
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    Re: PHP: session_destroy()

    Inca <shadow*movements@wanadoo.nospam.invalid> wrote:
    >>> Dan snap ik de globale vars niet helemaal. Ik dacht dat $_SESSION een
    >>> superglobal is (die dan ook blijft bestaan) maar de specifieke
    >>> velden zijn geen echte variabelen, dacht ik.

    >>
    >> Een superglobal is niets anders dan een variabele die binnen elke
    >> scope altijd beschikbaar is.

    >
    > Maar is een key in een array ook een variabele? (Abstracte discussie zo...)


    De key/index is een onderdeel van een array/hash. Enkele properties
    kunnen afhankelijk zijn van de waarde het array/hash (de maximale waarde
    bv), ze zijn onderdeel van en brengen structuur aan in een variabele.

    [...]
    > Even voor de zekerheid:
    > zoals ik het nu beschrijf is comp1 zoals het zou moeten werken volgens de
    > documentatie?
    > Maar zonder redirect zou het als comp2 werken, waarbij de sessie weg is,
    > maar er nog wel een kopie is van de session-variabelen? (Het
    > 'pass-by-value-idee' zeg maar)


    Lijkt me een perfecte samenvatting.

    --

    Daniel Tryba


  14. #14
    Bert Bierhuis
    PHP: session_destroy()
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    Re: PHP: session_destroy()

    >
    >De sessie blijft inderdaad bestaan, immers:
    >
    ><q src='http://nl.php.net/manual/en/function.session-destroy.php'>
    >session_destroy() destroys all of the data associated with the current
    >session. It does not unset any of the global variables associated with
    >the session, or unset the session cookie.
    ></q>
    >
    >Als het goed is is de data dus verdwenen.


    Dus ook de session_id blijft bestaan. Hoe kan ik er dan voor zorgen
    dat hiervoor een andere wordt gekozen? Of moet ik dan de cookie laten
    verwijderen?


  15. #15
    Inca
    PHP: session_destroy()
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    Re: PHP: session_destroy()

    Bert Bierhuis wrote:
    > Dus ook de session_id blijft bestaan. Hoe kan ik er dan voor zorgen
    > dat hiervoor een andere wordt gekozen? Of moet ik dan de cookie laten
    > verwijderen?


    Op de pagina staan een paar mogelijkheden (zie notes):
    http://nl.php.net/manual/en/function...on-destroy.php

    Bijvoorbeeld:
    setcookie( session_name() ,"",0,"/");
    --
    Inca



Webhostingtalk.nl

Contact

  • Rokin 113-115
  • 1012 KP, Amsterdam
  • Nederland
  • Contact
© Copyright 2001-2026 Webhostingtalk.nl.
Web Statistics