Avatar billede dvaske Nybegynder
27. februar 2003 - 11:39 Der er 2 kommentarer og
2 løsninger

session timeout

Jeg har en side, hvor brugeren via en loginside, hvor der oprettes en session, kommer til en personlig side, med sine egne data.

Har brugeren ikke klikket sig rundt i systemet i 5 minutter skal der automatisk logges ud (session_destroy()?).

Jeg har rodet med session_set_cookie_params, og f.eks. sat udløbstiden til 10 sec, men når jeg reloader siden, er brugeren stadig inde i systemet.

Hjælp!
:-)
Avatar billede jensendk Nybegynder
27. februar 2003 - 11:42 #1
session.cookie_lifetime(integer)
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


Taget fra PHP manualen...
Avatar billede dvaske Nybegynder
27. februar 2003 - 21:15 #2
Har prøvet, men det virker ikke rigtigt.

Jeg sætter ini_set("session.cookie_lifetime",5) i starten af alle mine sider, men der timeoutes ikke efter de 5 sekunder.

Man kan prøve filerne på http://test.klinting.dk/
Se kilderne herunder:

-------------------------------------------
- forside.php
-------------------------------------------
<?
    session_start();
    ini_set("session.cookie_lifetime",5);

    $redirect_faillogin    =    "/login.php";
    $redirect_login_ok    =    "/forside.php";

    if (!session_is_registered("session_inside")) {
        ?><!-- er ikke inde, sender videre til loginsiden. -->
        <html>
        <head>
            <title>-&gt;<?=$redirect_faillogin;?></title>
            <meta http-equiv="refresh" content="2;URL=<?=$redirect_faillogin;?>">
        </head>
        <body onLoad="window.top.location='<?=$redirect_faillogin;?>';">
       
        </body>
        </html>
        <?
        exit;
    }

?>
Forsiden... man er inde, men hvis der ventes 5 sekunder og man reloader burde cookien være timeouted, og man skulle logge ind igen.

-------------------------------------------
- login.php
-------------------------------------------
<?
    session_start();
    ini_set("session.cookie_lifetime",5);

    $redirect_faillogin    =    "/login.php";
    $redirect_login_ok    =    "/forside.php";
   
    if (session_is_registered("session_inside")) {
        ?>
        <!-- er inde, sender videre til forsiden -->
        <html>
        <head>
            <title>-&gt;<?=$redirect_faillogin;?></title>
            <meta http-equiv="refresh" content="2;URL=<?=$redirect_faillogin;?>">
        </head>
        <body onLoad="window.top.location='<?=$redirect_login_ok;?>';">
       
        </body>
        </html>
        <?
        exit;
    } else {
        ?>Brugeren er ikke logget ind, så dét sker på denne side.<?

        // HER SKAL DER VALIDERES       
       
        // LOGIN
        $inside = 1;
        session_register("session_inside");
       
        ?><br>Brugeren er nu logget ind.<?
        echo "<br>session.cookie_lifetime: ".ini_get("session.cookie_lifetime");
        ?><br><a href="index.php">videre</a><?
    }
?>



-------------------------------------------
- login.php (Bruges til at slette cookies)
-------------------------------------------
<?
session_start();
if(session_destroy()) {
    // echo "session destroyed";
    echo "Brugeren blev logget af.";
}
?>
Avatar billede dvaske Nybegynder
12. oktober 2003 - 20:41 #3
Lukketid
Avatar billede dvaske Nybegynder
12. oktober 2003 - 20:41 #4
Lukketid igen :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester