Heim >Backend-Entwicklung >PHP-Tutorial >Detaillierte Erläuterung der Anwendung der PHP-Sitzung
In diesem Artikel werden hauptsächlich relevante Informationen zur PHP-Sitzungsanwendung im Detail vorgestellt. Freunde, die diese benötigen, können sich auf
Erweiterte PHP-Sitzungsanwendung beziehen
Sitzungen sind in der Webtechnologie sehr wichtig. Da es sich bei der Webseite um ein zustandsloses Verbindungsprogramm handelt, kann der Browserstatus des Benutzers nicht bekannt sein. Während der Sitzung können die relevanten Informationen des Benutzers zur Bestätigung aufgezeichnet werden, wenn der Benutzer in dieser Funktion erneut eine Anfrage an den Webserver sendet.
Zum Beispiel: Wenn ein Benutzer eine E-Commerce-Website durchsucht und keine Sitzung stattfindet, muss der Benutzer bei jedem Durchsuchen das Kontokennwort eingeben.
Empfehlungen zu verwandten Themen: PHP-Sitzung (einschließlich Bilder, Videos, Fälle)
1, Sitzung temporäre Dateien
Wenn auf dem Server alle Benutzersitzungen im temporären Verzeichnis gespeichert werden, wird die Sicherheit und Effizienz des Servers verringert. Das Öffnen einer auf dem Server gespeicherten Site wird sehr langsam sein.
Die Verwendung der PHP-Funktion session_save_path() zum Speichern temporärer Sitzungsdateien kann die Probleme einer verringerten Servereffizienz und eines langsamen Öffnens der Website, die durch die Speicherung temporärer Dateien verursacht werden, lindern.
Der Beispielcode lautet wie folgt:
<?php $path ="./tmp/"; //设置session存储的路径 session_save_path($path); session_start(); $_SESSION['userName']=true; ?>
Hinweis
session_save_path() muss vor session_start() ausgeführt werden.
2. Sitzungs-Caching
Sitzungs-Caching dient dazu, den Inhalt der Webseite vorübergehend im Ordner „Temporäre Internetdateien“ des IE-Clients zu speichern und die Cache-Zeit zu verlängern eingestellt werden.
Der Sitzungscache verwendet die Funktion session_cache_limiter(), deren Syntax wie folgt lautet:
string session_cache_limiter([string cache_limiter]);
Der Parameter „cache_limiter“ ist öffentlich oder privat. Die Kollegensitzung findet nicht auf der Serverseite, sondern auf der Clientseite statt. Wird auf dem Server nicht angezeigt.
Um die Cache-Zeit festzulegen, verwenden Sie die Funktion session_cache_expire(). Die Syntax lautet wie folgt:
int session_cache_expire([int new_cahche_expire]);
Der Parameter new_cahche_expire ist die Zeitnummer des Sitzungscache in Minuten.
Hinweis:
Diese beiden Sitzungsfunktionen müssen vor der Funktion session_start() ausgeführt werden.
Beispiel für eine Sitzungs-Cache-Seite Der Code lautet wie folgt:
<?php session_cache_limiter("private"); $cache_limit =session_cache_limiter(); //开启客户端缓存 echo "缓存限制为:".$cache_limit."\n"; session_cache_expire(30); $cache_expire = session_cache_expire(); //设定客户端缓存时间 echo "客户端缓存时间为:".$cache_expire."分钟\n"; session_start(); ?>
Die laufenden Ergebnisse lauten wie folgt:
3, Sitzungsdatenbankspeicher
Die Speicherung der Sitzungsdatenbank in PHP wird hauptsächlich über die Funktion session_set_save_handler() implementiert. Die spezifische Syntax lautet wie folgt:
bool session_set_save_handler(string open,string close,string read,string write,string destroy,string gc);
Die sechs Parameter (Funktionen) sind im Folgenden in Pakete unterteilt. Nach dem Erlernen der objektorientierten Programmierung wird jeder ein klareres Verständnis haben.
(1) Kapseln Sie die Funktion session_open(), der Code lautet wie folgt:
function _session_open($save_path,$session_name){ global $handle; $handle =mysql_connect('localhost','root','root')or die('数据库连接失败!'); mysql_select_db('db_database11',$handle)or die('数据库不存在'); return(true); }(2) Kapseln Sie die Funktion session_close(), der Code lautet wie folgt:
function _session_close(){ global $handle; mysql_close($handle); return(true); }
function _session_read($key){ golbal $handle; //全局变量$handle 连接数据库 $time =time(); //设定当前时间 $sql ="select session_data from tb_session where session_key = '$key' and session_time>'$time'"; $result =mysql_query($ssql,$handle); $row =mysql_fetch_array($result); if($row){ return($row['session_data']); }else{ return(false); } }
(4) Kapselt die Funktion session_write(). Die Funktion legt die Ablaufzeit der Sitzung fest und findet den Namen und Inhalt der Sitzung, wenn das Abfrageergebnis leer ist. Fügen Sie dann die Sitzung auf der Seite basierend auf Sitzungs-ID, Sitzungsname und Ablaufzeit in die Datenbank ein. Wenn das Abfrageergebnis nicht leer ist, ändern Sie die Sitzungsspeicherinformationen in der Datenbank basierend auf $key. Der Code lautet wie folgt:
function _session_write($key,$data){ global $handle; $time = 60*60; $lapse_time =time()+$time; //得到UNIX时间戳 $sql = "select session_data from tb_session where session_key ='$key' and session_time>$lapse_time"; $result =mysql_query($sql,$handle); if(mysql_num_rows($result)==0){ //没有结果 $sql ="insert into tb_session values('$key','$data',$lapse_time)"; $result =mysql_query($sql,$handle); }else{ $sql ="update tb_session set session_key='$key',session_data ='$data',session_time =$lapse_time where session_key ='$key'"; $result =mysql_query($sql,$handle); } return($result); }
(5) kapselt session_destroy() und löscht Sessin in der Datenbank basierend auf $key. Der Code lautet wie folgt:
function _session_destroy(){ global $handle; $sql ="delete from tb_session where session_key ='$key'"; $result =mysql_query($sql,$handle); }
(6) kapselt session_gc (), basierend auf der Ablaufzeit der Sitzung. Löschen Sie die abgelaufene Sitzung. Der Beispielcode lautet wie folgt:
functin _session_gc($expiry_time){ global $handle; $sql ="delete from tb_session where session_expiry_time<$expiry_time"; $result =mysql_query($sql,$handle); return($result); }
Ich werde den spezifischen Code nicht ausführen. Ich werde ihn Ihnen zeigen, wenn ich mit dem Erlernen der objektorientierten Programmierung fertig bin .
Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, er wird für das Studium aller hilfreich sein.
Verwandte Empfehlungen:
Detaillierte Erklärung zur Verwendung desSession
-Cookies mit PHP und CodeigniterPerfekte Lösung des Problems von Sitzungsfehlern während des Ajax-Zugriffs
Detaillierte Erläuterung der Methode zum Speichern von PHPSession in Redis/Redis
Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Anwendung der PHP-Sitzung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!