Avatar billede Slettet bruger
13. juni 2010 - 17:10 Der er 10 kommentarer og
1 løsning

Hej hvordan laver man et logud script, som logger ud automatisk efter 15 minutter fx.

Hej eksperter.dk

hvordan laver man et logud script,
som logger ud automatisk efter 15 minutter fx. eller hvis man ikke har været aktiv i 15 minutter.

mit nuværende logud script ser sådan ud.:
<?php
    session_start();
       
    $_SESSION = array();
       
    if(isset($_COOKIE[session_name()])) {
    setcookie(session_name(), '', time()-42000, '/');
    }
       
    session_destroy();
    redirect_to("index.php?logout=1");
?>

Håber i har et svar på dette...
Avatar billede claes57 Ekspert
13. juni 2010 - 17:20 #1
Dit script rører jo kun på sig, hvis bruger læser en ny side hos dig - en mulighed er, at du på alle sider har en lille iframe, hvis indhold reloades efter 15 min - og gør den det, så skal bruger smides af.
Lad være med at lave en iframe på 1*1 pix - brug fx dit logo eller andet passende til det.
Avatar billede janus Nybegynder
13. juni 2010 - 18:21 #2
du kunne f.eks. bruge sådan noget her:



session_start();

// set <strong class="highlight">timeout</strong> period in seconds
$inactive = 600;

// check to see if $_SESSION['<strong class="highlight">timeout</strong>'] is set
if(isset($_SESSION['<strong class="highlight">timeout</strong>']) ) {
    $session_life = time() - $_SESSION['start'];
    if($session_life > $inactive)
        { session_destroy(); header("Location: logoutpage.php"); }
}
$_SESSION['<strong class="highlight">timeout</strong>'] = time();
Avatar billede jakobdo Ekspert
13. juni 2010 - 21:22 #3
Det bedste ville jo være at få kontrol over tiden, en session lever på din server.
Der kunne du sætte tiden til 15 min.
Avatar billede janus Nybegynder
13. juni 2010 - 21:39 #4
Avatar billede Slettet bruger
14. juni 2010 - 10:27 #5
#2:

Hej, ja men hvor skal jeg sætte det ind henne... det er også et af mine problemer...
Avatar billede janus Nybegynder
14. juni 2010 - 13:59 #6
det ville være smartest at sætte det helt i toppen af siden, ellers vil session_start() ikke virke.

der var desuden noget html i koden der ikke skulle har været der, her er det rigtige:

session_start();

// set timeout period in seconds
$inactive = 600;

// check to see if $_SESSION['timeout'] is set
if(isset($_SESSION['timeout']) ) {
    $session_life = time() - $_SESSION['start'];
    if($session_life > $inactive)
        { session_destroy(); header("Location: logoutpage.php"); }
}
$_SESSION['timeout'] = time();
Avatar billede Slettet bruger
14. juni 2010 - 20:22 #7
Det skal vel være på alle sider.. eller hvad. ?
Avatar billede janus Nybegynder
14. juni 2010 - 20:36 #8
du kan putte det i en fil alene (omgivet af "<?php" og "?>"), og derefter indkludere den fra alle de andre med "require 'filnavn.php';".
Avatar billede Slettet bruger
14. juni 2010 - 21:54 #9
ja men jeg sætter den i require, men hvis jeg refresh siden så logger den ud, selv om jeg lige er logget ind.. hvordan kan det være?
Avatar billede janus Nybegynder
15. juni 2010 - 01:17 #10
det er fordi du skal sætte $_SESSION['start'] til tiden når du logger ind. prøv at læs koden og forstå den, så ville du have set det.

$_SESSION["start"]=time();

indsæt der hvor du godkender login-oplysninger.
Avatar billede Slettet bruger
08. august 2010 - 04:05 #11
tak for det...


lukker
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

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



IT-JOB

Cognizant Technology Solutions Denmark ApS

Senior Test Engineer

Udviklings- og Forenklingsstyrelsen

Systemejer med teknisk flair

Udviklings- og Forenklingsstyrelsen

Senior projektleder med PMO-erfaring

Unit IT

Project Manager