Wir wissen, dass PHP-Sitzungen standardmäßig als Dateien gespeichert werden und Cookies zum Speichern von Variablen auf der Clientseite verwendet werden. Dies führt zu einem Problem, wenn ein Benutzer die Cookies des Browsers aus Sicherheitsgründen deaktiviert Sitzungsbezogene Vorgänge werden nicht ausgeführt. Wenn also Sitzungsdaten in der Datenbank gespeichert werden können, werden sie nicht durch Client-Einstellungen eingeschränkt und es kommt zu einem Leistungs- und Skalierbarkeitssprung. Die im Programm verwendete Schlüsselfunktion ist session_set_save_handler, und session.save_handler = Dateien in php.ini müssen in Benutzer geändert werden. Die Umgebung, die wir hier besprechen, ist Linux (FreeSD) Apache MySQL PHP.
Struktur der Datentabelle: [Sitzungen]
CREATE TABLE-Sitzungen (
sesskey char(32) nicht null,
expiry int(11) unsigned not null,
Werttext nicht null,
PRIMÄRSCHLÜSSEL (Sitzungsschlüssel)
);
Programmcode: [session_inc.php]
$SESS_DBHOST = "yourhost"; /* Datenbankserver-Hostname */
$SESS_DBNAME = "yourdb"; /* Datenbankname */
$SESS_DBUSER = "youruser"; /* Datenbankbenutzer */
$SESS_DBPASS = "yourpassWord"; /* Datenbankpasswort */
$SESS_DBH = "";
$SESS_LIFE = get_cfg_var("session.gc_maxlifetime");
Funktion sess_open($save_path, $session_name) {
global $SESS_DBHOST, $SESS_DBNAME, $SESS_DBUSER, $SESS_DBPASS, $SESS_DBH;
If (! $SESS_DBH = mysql_pconnect($SESS_DBHOST, $SESS_DBUSER, $SESS_DBPASS)) {
echo "
Das Obige stellt vor, wie PHP eine Datenbank zum Speichern von Sitzungen verwendet, einschließlich des Inhalts von Datenbankspeichersitzungen. Ich hoffe, es wird für Freunde hilfreich sein, die sich für PHP-Tutorials interessieren.