Heim  >  Artikel  >  Backend-Entwicklung  >  Detaillierte Erläuterung der Anwendung der PHP-Sitzung

Detaillierte Erläuterung der Anwendung der PHP-Sitzung

墨辰丷
墨辰丷Original
2018-05-24 16:33:201836Durchsuche

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[&#39;userName&#39;]=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:

Detaillierte Erläuterung der Anwendung der PHP-Sitzung

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.

Detaillierte Erläuterung der Anwendung der PHP-Sitzung(1) Kapseln Sie die Funktion session_open(), der Code lautet wie folgt:

function _session_open($save_path,$session_name){
global $handle;
$handle =mysql_connect(&#39;localhost&#39;,&#39;root&#39;,&#39;root&#39;)or die(&#39;数据库连接失败!&#39;);
mysql_select_db(&#39;db_database11&#39;,$handle)or die(&#39;数据库不存在&#39;);
return(true);
}

(2) Kapseln Sie die Funktion session_close(), der Code lautet wie folgt:

function _session_close(){
global $handle;
mysql_close($handle);
return(true);
}

(3) Kapseln Sie die Funktion session_read(), legen Sie den UNIX-Zeitstempel der aktuellen Zeit in der Funktion fest und durchsuchen Sie die Visitenkarte und den Inhalt der Sitzung basierend auf $key. Der Code lautet wie folgt:

function _session_read($key){
golbal $handle;     //全局变量$handle 连接数据库
$time =time();     //设定当前时间
$sql ="select session_data from tb_session where session_key = &#39;$key&#39; and session_time>&#39;$time&#39;";
$result =mysql_query($ssql,$handle);
$row =mysql_fetch_array($result);
if($row){
return($row[&#39;session_data&#39;]);
}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 =&#39;$key&#39; and session_time>$lapse_time";
$result =mysql_query($sql,$handle);
if(mysql_num_rows($result)==0){  //没有结果
$sql ="insert into tb_session values(&#39;$key&#39;,&#39;$data&#39;,$lapse_time)";
$result =mysql_query($sql,$handle);
}else{
$sql ="update tb_session set session_key=&#39;$key&#39;,session_data =&#39;$data&#39;,session_time =$lapse_time where session_key =&#39;$key&#39;";
$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 =&#39;$key&#39;";
$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 des

Session

-Cookies mit PHP und Codeigniter

Perfekte 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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn