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?
Antwort
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
}
}
}
?>
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.
Ich denke, dass dies ein Thema für Fortgeschrittene :) – Gian
Vielleicht ich didn Die Frage ist richtig, aber er wünscht sich, dass die Sitzungen viel länger dauern, daher der Vorschlag. –
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
- 1. PHP Wie kann ich mehrere Sitzungen erstellen?
- 2. Wie verwendet man PHP-Sitzungen in xslt?
- 3. Wie verwende ich innere Klassen in PHP?
- 4. Wie verwende ich MySQL Found_Rows() in PHP?
- 5. PHP-Klasse Sitzungen
- 6. Smarty und PHP Sitzungen
- 7. Mehrere PHP-Sitzungen
- 8. php Sitzungen nicht erkannt
- 9. Arbeiten von PHP-Sitzungen
- 10. PHP + Umleiten mit Sitzungen
- 11. PHP-Sitzungen mit HTML
- 12. Cross-Domain-PHP-Sitzungen
- 13. php - zerstöre alle Sitzungen
- 14. Sitzungen für PHP
- 15. Wie verwende ich PHP Namespaces mit Autoload?
- 16. Wie verwende ich jCarousel mit PHP-Funktion?
- 17. PHP Sitzungen standardmäßig Zeitüberschreitung
- 18. Wie verwende ich Prolog mit PHP?
- 19. Wie Sub-Domain-PHP-Sitzungen zu deaktivieren?
- 20. Wie verwende ich Anführungszeichen in der Echo-Funktion in PHP?
- 21. Wie verwende ich mysqli in PHP in diesem Code
- 22. Wie blende PHPSESSID aus PHP-Sitzungen
- 23. Beste Bibliothek für PHP-Sitzungen
- 24. Richtiger Weg, Sitzungen in PHP zu verwalten?
- 25. PHP-Sicherheitscheckliste (Injektion, Sitzungen usw.)
- 26. Zugriff auf aktive Sitzungen in PHP
- 27. PHP Memcached Sitzungen Replikat Problem
- 28. sicheren Umgang mit Client 'Sitzungen' in PHP
- 29. Memcached und PHP-Sitzungen Problem
- 30. PHP-Sitzungen laufen unerwartet ab
Sie sollten Funktion Php Session verwenden, werden auch hier erklärt: http://php.net/manual/en/features.sessions.php – Gian