2016-06-29 24 views
0

Code Teil login.phpPHP Abmeldung von 10 Minuten Inaktivität nicht

  else if(($row['Password'] == md5($pass))){ 
        $_SESSION['user'] = $row['FName']; 
        $_SESSION['last_activity'] = time(); 
        header("Location: welcome.php"); 
      } 

ganze Code von welcome.php

<?php 
session_start(); 

if(!isset($_SESSION['user'])){ //session verification 
    header("Location: login.php"); 
} 
else{ 
    echo "Welcome, ". $_SESSION['user']. "<br>"; 
    echo "<a href='logout.php'> Logout </a>"; 
} 

if($_SESSION['last_activity'] < (time() - 600)){ //time in seconds, 10 minutes 
    session_destroy(); 
    header("Location: login.php"); 
    exit; 
} 
else{ 
    $_SESSION['last_activity'] = time(); 
} 

>

Frage: Auch ich aktualisieren Sie die Seite nach 10 Minuten, wilkommen.php Seite angemeldet bleibt. Was ist los? Danke

+1

Ich denke, dass Sie einen clientseitigen Code benötigen, um dieses serverseitige Ereignis auszulösen. Verwenden Sie Javascript, um diesen Code-Block (Ajax) auszuführen –

+2

Rufen Sie session_start in Ihrer login.php auf? Außerdem sollten Sie die Sitzung auch zerstören, wenn die erste Bedingung fehlschlägt (Sitzungsüberprüfung). Sie sollten auch sterben(); Nachdem Sie den Header gesetzt haben (Wenn Exit tut das gleiche weiß ich nicht. Und am wichtigsten: Verwenden Sie nicht MD5. Dies ist eine sehr unsichere Hashfunktionen und bietet nicht genug Sicherheit – JRsz

+0

@MueyiwaMosesIkomi, ich habe kein Javascript Wissen. :( –

Antwort

1

Versuchen Sie das;

$last_activity = time() - $_SESSION['last_activity']; 

if($last_activity >= 600){ //time in seconds, 10 minutes 
    session_destroy(); 
    header("Location: login.php"); 
    exit(); 
} 
Verwandte Themen