2012-03-29 6 views
1

Ich baue eine PHP-basierte Website, aber jetzt muss ich dem Benutzer eine Sitzung geben, d. H. Der Benutzer kann sich auf der Website anmelden und seine Sitzung haben. nachdem er sich abmelden sollte. Wie kann ich das erreichen?Wie verwende ich Sitzungen in PHP?

+0

Sie sollten Funktion Php Session verwenden, werden auch hier erklärt: http://php.net/manual/en/features.sessions.php – Gian

Antwort

0

Sie könnten ein $ _SESSION haben [ „Auth“] = true, wenn sich der Benutzer anmeldet und das Skript, das das Passwort überprüft in der Regel festgelegt sollte die obige Sitzungsvariable abzumelden. dann redirect zu einer restricted-to-members Seite wie demhboard.php oder photos.php mit header(). Sobald sich der Benutzer abmeldet, sollten Sie die Funktion session_destroy() verwenden. Es ist auch sicherer, eine session_regenerate_id (true) auf jeder Seite zu haben, so dass das Session-ID-Cookie regeneriert wurde, um Session-Hijacking zu verhindern.

<?php 
session_start();//start session 
session_regenerate_id(true); 
if($_SESSION["auth"] != true) { 
header("Location: login.php"); // redirects to login if user is not logged in already 
} 
else { 
//has access 
if(!isset($_SESSION["timeout"])) { 
$_SESSION["timeout"] = time(); 
} 
else if(isset($_SESSION["time"])) { 
if($_SESSION["timeout"] - time() == 1800) { 
header("Location: login.php");//timeout incase no activity for 30min , 30min = 1800seconds 

} 

} 

} 

?> 
0

Speichern Sie alle sitzungsbezogenen Daten in Ihrer Datenbank oder einem anderen Datenspeicher mit seinem Benutzernamen als Schlüssel. Wenn er sich also erneut anmeldet, können Sie einfach die Daten aus dem Datenspeicher laden und seine Sitzung wiederherstellen.

Jedes andere Sitzungsverwaltungssystem wie das mit CodeIgniter oder php eingebauter Sitzungsverwaltung sollte nicht für persistente Sitzungen verwendet werden.

+0

Ich denke, dass dies ein Thema für Fortgeschrittene :) – Gian

+0

Vielleicht ich didn Die Frage ist richtig, aber er wünscht sich, dass die Sitzungen viel länger dauern, daher der Vorschlag. –

2

am Anfang jedes Skripts setzen session_start() Dann erstellen Sie eine Datenbank von Benutzern und ihre Passwörter. Wenn in Ihnen Benutzer anmeldet sollte seinen Benutzernamen und das Passwort überprüfen, und wenn sie übereinstimmen, Sitzung setzen Benutzer-ID in

$_SESSION['user_id'] = $user_id; 

In allen Skripten Sie diesen Wert $ _SESSION lesen kann [ ‚user_id‘], so dass Sie wissen, wer ist dieser Benutzer.

Verwendung session_destroy