Wie kann ich Sitzung in der Datenbanktabelle mit PHP und MySQL verwenden?set Sitzung in der Datenbank in PHP
Antwort
Sie müssen ein Objekt wie so erstellen:
class SessionHandler
{
private static $lifetime = 0;
private function __construct() //object constructor
{
session_set_save_handler(
array($this,'open'),
array($this,'close'),
array($this,'read'),
array($this,'write'),
array($this,'destroy'),
array($this,'gc')
);
}
public function start($session_name = null)
{
session_start($session_name); //Start it here
}
public static function open()
{
//Connect to mysql, if already connected, check the connection state here.
return true;
}
public static function read($id)
{
//Get data from DB with id = $id;
}
public static function write($id, $data)
{
//insert data to DB, take note of serialize
}
public static function destroy($id)
{
//MySql delete sessions where ID = $id
}
public static function gc()
{
return true;
}
public static function close()
{
return true;
}
public function __destruct()
{
session_write_close();
}
}
Dann vor session_start initiieren diese Klasse!
include 'classes/sessionHandlerDB.php';
$session = new SessionHandler();
$session->start('userbase');
$_SESSION['name'] = 'Robert Pitt'; //This is sent to SessionHandler::write('my_id','Robert Pitt')
echo $_SESSION['name']; //This calls SessionHandler::read($id)//$id is Unique Identifier for that
http://php.net/manual/en/function.session-set-save-handler.php
Können Sie mir sagen, wie kann ich diesen Code verwenden, um Sitzung zu setzen? Gibt es einen Unterschied zur normalen Sitzungseinstellung? – shin
Basisch, wenn Sie $ _SESSION verwenden ... Dies wird den SessionHandler abfragen, was bedeutet, dass der Session-Handler der mittlere Mann ist, Daten speichert und Daten zurückgibt. Wenn Sie einen eigenen Handler anwenden, können Sie ihn beliebig speichern, DB, Datei usw. Das Ausführen dieser Anweisung teilt PHP mit, dass Sie diese Klasse für die Daten abfragen, wenn Sie die Sitzung verwenden. Solange Sie diese Datei einschließen und eine Instanz davon erstellen, wird alles, was Sie sonst noch tun, nicht akzeptiert. Die Speichermethode wird DB sein. Ich habe meinen Beitrag aktualisiert, bitte überprüfen Sie – RobertPitt
Auch dieser Code ist reines Beispiel, ich würde es erweitern, um ein Speicherobjekt zu haben, so dass Sie die Aufrufe an db reduzieren, schauen Sie auch auf MemCached! – RobertPitt
Sie steuern dies in php.ini
unter der session_handler
Richtlinie. Check out http://www.tonymarston.net/php-mysql/session-handler.html für einen einfachen Spaziergang durch (verwendet es vorher).
Sie müssen session_set_save_handler
verwenden, um benutzerdefinierte Funktionen zum Öffnen, Schließen, Lesen, Schreiben, Löschen und Bereinigen zu schreiben.
Meine Github Code-Schnipsel PHP5.4-DB-Session-Handler-Class für eine Datenbank gefahrene Session-Management-Klasse in PHP 5.4.
- 1. Set ASP-Sitzung von PHP
- 2. Bookshelf.js Set-Attribut nicht in der Datenbank
- 3. Set-Cookie-Sitzung deadbolt 2 in Controller
- 4. Sitzung Fehler in PHP bildet
- 5. Rails: Vorteile der Speicherung der Sitzung in der Datenbank?
- 6. Speichern von Benutzervariablen in der Datenbank vs Sitzung in asp.net
- 7. Speichern Sie mehrere Werte in Sitzung PHP
- 8. Gleichzeitige Datenbankabfragen in PHP pro Sitzung ausführen?
- 9. Ermitteln der MSS-Größe der TCP-Sitzung in PHP
- 10. Add Sitzung in WordPress
- 11. Benutzerdefinierte Sitzung save_handler overwerites aktuelle gespeicherte Daten in der Datenbank
- 12. PHP-Sitzungssicherheit - Kanarienvogel Sitzung
- 13. PHP, welches ist der bessere Weg zwischen dem Speichern von Daten in Sitzung und Datenbank?
- 14. set config params aus der Datenbank in yii 1
- 15. Set Beziehung Attribute Keine nach Sitzung in SQLAlchemy geschlossen ist
- 16. Langsame PHP-Suche in der Datenbank
- 17. OOP PHP-Fehler in der Datenbank mysqli_query
- 18. Blob Bild aus der Datenbank in PHP
- 19. PHP einfügen Daten in der Datenbank
- 20. PHP hinzufügen Eingabefeld Werte in der Datenbank
- 21. PHP SSO Sitzung prüfen
- 22. 'set' Objekt hat kein Attribut 'Sitzung'
- 23. Wie automatisch Daten in der Datenbank in PHP aktualisieren
- 24. Warum sollten wir Sitzung in PHP zerstören?
- 25. Verwenden von PHP-Sitzung in Laravel 5
- 26. Ausführen einer Funktion zum Ablauf der Sitzung in Codeigniter PHP
- 27. Fetch Api nicht in der Lage, Sitzung von PHP-Server
- 28. Unterschied zwischen Sitzung in Datei und in Datenbank
- 29. PHP - Sitzung pro Registerkarte
- 30. JSON-Objekt in PHP-Sitzung speichern?
Können Sie uns ein wenig mehr Informationen geben? Was genau wirst du mit den Sitzungen machen? – 2ndkauboy
Möglicherweise möchten Sie zuerst mit Google suchen. Einer der ersten Links, die es Ihnen zur Verfügung stellt, ist zum Beispiel: http://www.devshed.com/c/a/PHP/Storing-PHP-Sessions-in-Applications/Database/ – nico
Normalerweise Sitzung gespeichert in temporären Dateien auf dem Server. Ich möchte die Sitzung in der Datenbanktabelle speichern. – shin