Inhaltsverzeichnis
php 严格控制session的过期时间
Heim Backend-Entwicklung PHP-Tutorial php 严格控制session的过期时间_PHP教程

php 严格控制session的过期时间_PHP教程

Jul 12, 2016 am 09:04 AM
时间

php 严格控制session的过期时间

工作过一段时间,相信大家一定也碰到过一个问题: 
        1.前台用户不知道怎么的就自动掉线了.
        2.后台退出登陆之后所有的前台用户也都掉线了.
        3.我想控制我的用户半个小时自动下线,发现改了配置文件也不好使.
 
    上述的所有问题都是我近期碰到的,后来通过查询知道:php的session机制由几个参数同时控制,具体是哪些我就不具体写了,分别是一个概率,一个最大过期时间,还有一个session的存储路径.在php.ini中我们可以看到,php的session的默认过期时间位24分钟,也就是说如果我们24分钟没有操作页面,这个session就过期了,当然这是理想状态下.24分钟之后php会出发一个session的回收机制,这个机制用来检测默认存储目录下的session文件的更改时间是否为24分钟之前,如果是那么删除session.当然这也是理想状态下.这就是前面提到的一个概率了,session的回收机制是按概率触发的,也就是说,即使你的session为24分钟之前的文件,如果步触发回收机制你的session依然没有过期.这当然也不是我们想要的了.为了解决这个问题就出现了我前面提到的第三个参数,也就是session的存储路径,如果你没有开启php.ini内部的session.save_path那么session是不会有文件产生的,所以为了能更加有效的控制session我们将其打开并且填写一个路径,或者在文件中用session_save_path(".....")函数来定义这个session的存储的路径.还有一点很重要,那就是成如果session存储在我们自己定义的路径内部,seesion的回收机制是不起作用的.所以只能我们自己来控制session的过期时间了.
    下面是一个我自己根据理解写的一个关于session的过期处理类
        
<?php 
class Session{
private $savePath;//存储session的路径,必须是绝对路径
private $time;//存储session的过期时间,单位是秒
private $sessionName;//session的名字
private $sessionValue;//session的值

public function __construct($savePath)
{
//将session存入指定的目录
$this->savePath = $savePath;
            //注意:这个一定要写在session_start前面
session_save_path($this->savePath); 

session_start();//开启session
if(!is_dir($this->savePath))
{
                //默认为最大的权限 0777
mkdir($this->savePath) or die(&#39;系统错误!&#39;);
}
}

//创建session  一共三个参数,
               // $name->session名字 
               // $val->session值 
               // $time->过期时间,默认为30分钟
public function setSession($name,$val,$time=1800)
{
$this->sessionName  = $name;
$this->sessionValue  = $val;
$this->time       = $time;
if(!isset($_SESSION[$this->sessionName]))
{
if(is_array($this->sessionValue))
{
foreach($this->sessionValue as $key=>$val)
{
$_SESSION[$this->sessionName][$key] = $val;
}
}
else
{
$_SESSION[$this->sessionName][&#39;val&#39;]   = $this->sessionValue;
}
$_SESSION[$this->sessionName]["startTime"] = time();
}
//这时候说明session已经存在,那么我们判断他是否过期,如果过期,删除session
else if(isset($_SESSION[$this->sessionName]["startTime"]) && time()-$_SESSION[$this->sessionName][&#39;startTime&#39;]>=$this->time)
{
unset($_SESSION[$this->sessionName]);
}
}
}
 ?>
Nach dem Login kopieren

 

 
    通过这个类我们可以达到几个目的:
                    1.我们可以明确的控制session的过期时间.
                    2.对应上面的第二个问题,我之前做用户退出登陆的时候通常这样写 session_destroy();或者写成unset($_SESSION);殊不知这样就把所有的session都清除了,所以我们会遇到前面一个用户退出之后,我们自己的session也被删除了.
                    3.用户不会无缘无故的掉线了,因为对我们来说每个步骤现在都是透明的了.
 
 

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/1074128.htmlTechArticlephp 严格控制session的过期时间 工作过一段时间,相信大家一定也碰到过一个问题: 1.前台用户不知道怎么的就自动掉线了. 2.后台退出登陆之后...
Erklärung dieser Website
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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Wie viel kostet ein Douyin-Lichtschild der Stufe 10? Wie viele Tage dauert es, ein Fanschild der Stufe 10 zu erstellen? Wie viel kostet ein Douyin-Lichtschild der Stufe 10? Wie viele Tage dauert es, ein Fanschild der Stufe 10 zu erstellen? Mar 11, 2024 pm 05:37 PM

Auf der Douyin-Plattform streben viele Benutzer danach, eine Level-Zertifizierung zu erhalten, und das Lichtzeichen der Stufe 10 zeigt den Einfluss und die Anerkennung des Benutzers auf Douyin. In diesem Artikel geht es um den Preis der Level-10-Lightboards von Douyin und um die Zeit, die es braucht, um dieses Level zu erreichen, um den Benutzern ein besseres Verständnis des Prozesses zu ermöglichen. 1. Wie viel kostet ein Douyin-Lichtschild der Stufe 10? Der Preis der 10-stufigen Lichtschilder von Douyin variiert je nach Marktschwankungen sowie Angebot und Nachfrage. Der allgemeine Preis liegt zwischen einigen tausend Yuan und zehntausend Yuan. In diesem Preis sind hauptsächlich die Kosten für das Lichtschild selbst und eventuelle Servicegebühren enthalten. Benutzer können Lichtschilder der Stufe 10 über die offiziellen Kanäle von Douyin oder über Drittanbieter-Serviceagenturen kaufen, sollten beim Kauf jedoch auf legale Kanäle achten, um falsche oder betrügerische Transaktionen zu vermeiden. 2. Wie viele Tage dauert die Erstellung eines Level-10-Fanschilds? Erreiche das Lichtzeichen der Stufe 10

Kann Linux die Systemzeit zurücksetzen? Kann Linux die Systemzeit zurücksetzen? Mar 13, 2023 am 10:50 AM

Linux kann die Systemzeit zurücksetzen: 1. Verwenden Sie den Befehl date, um die Uhrzeit zu überprüfen. 2. Verwenden Sie den Befehl „yum install ntp“, um ntp zu installieren „Befehl zum Implementieren der Netzwerkzeit. Einfach synchronisieren.

Wie lange dauert es, den Elden Ring zu räumen? Wie lange dauert es, den Elden Ring zu räumen? Mar 11, 2024 pm 12:50 PM

Spieler können die Haupthandlung des Spiels erleben und Spielerfolge sammeln, wenn sie in Elden's Circle spielen. Viele Spieler wissen nicht, wie lange es dauert, Elden's Circle zu bewältigen. Wie lange dauert es, den Elden Ring zu räumen? Antwort: 30 Stunden. 1. Diese 30-Stunden-Räumungszeit bezieht sich zwar nicht auf einen meisterhaften Speed-Pass, lässt aber auch viele Prozesse aus. 2. Wenn Sie ein besseres Spielerlebnis erhalten oder die komplette Handlung erleben möchten, müssen Sie auf jeden Fall mehr Zeit in die Dauer investieren. 3. Wenn die Spieler sie alle sammeln, dauert es etwa 100–120 Stunden. 4. Wenn Sie zum Bürsten von BOSS nur den Hauptfaden verwenden, dauert dies etwa 50–60 Stunden. 5. Wenn Sie alles erleben möchten: 150 Stunden Basiszeit.

So entfernen Sie Stunden, Minuten und Sekunden aus der Zeit in PHP So entfernen Sie Stunden, Minuten und Sekunden aus der Zeit in PHP Mar 13, 2023 am 11:20 AM

So entfernen Sie mit PHP Stunden, Minuten und Sekunden aus der Zeit: 1. Erstellen Sie eine PHP-Beispieldatei. 2. Verwenden Sie die Funktion strtotime, um Datum und Uhrzeit in einen Zeitstempel umzuwandeln. 3. Verwenden Sie die Datumsfunktion, um das Datum oder die Uhrzeit zu formatieren um die Stunden, Minuten und Sekunden zu entfernen.

Warum dauert die Kompilierung meines Go-Programms länger? Warum dauert die Kompilierung meines Go-Programms länger? Jun 09, 2023 pm 06:00 PM

In den letzten Jahren ist die Sprache Go für immer mehr Entwickler zur Wahl geworden. Im Vergleich zu anderen Programmiersprachen ist die Kompilierungsgeschwindigkeit der Go-Sprache jedoch nicht hoch genug. Viele Entwickler werden beim Kompilieren von Go-Programmen auf dieses Problem stoßen: Warum dauert das Kompilieren meines Go-Programms länger? In diesem Artikel wird dieses Problem unter verschiedenen Aspekten untersucht. Die Compiler-Architektur der Go-Sprache Die Compiler-Architektur der Go-Sprache verwendet ein dreistufiges Design: Front-End, Mittelschicht und Back-End. Das Front-End ist für die Übersetzung des Quellcodes in Zwischencode in der Go-Sprache verantwortlich, und die mittlere Ebene übernimmt die Aufgabe

Wie legt man den Zeitpunkt für die Veröffentlichung von Werken auf Xiaohongshu fest? Ist der Zeitpunkt für die Veröffentlichung der Arbeit korrekt? Wie legt man den Zeitpunkt für die Veröffentlichung von Werken auf Xiaohongshu fest? Ist der Zeitpunkt für die Veröffentlichung der Arbeit korrekt? Mar 24, 2024 pm 01:31 PM

Xiaohongshu, eine Plattform voller Leben und Wissensaustausch, ermöglicht es immer mehr Kreativen, ihre Meinung frei zu äußern. Um mehr Aufmerksamkeit und Likes auf Xiaohongshu zu bekommen, ist neben der Qualität der Inhalte auch der Zeitpunkt der Veröffentlichung der Werke entscheidend. Wie legt man also den Zeitpunkt fest, zu dem Xiaohongshu seine Werke veröffentlichen soll? 1. Wie legt man den Zeitpunkt für die Veröffentlichung von Werken auf Xiaohongshu fest? 1. Verstehen Sie die aktive Zeit der Benutzer. Zunächst muss die aktive Zeit der Xiaohongshu-Benutzer geklärt werden. Im Allgemeinen sind 20:00 bis 22:00 Uhr und Wochenendnachmittage die Zeiten, in denen die Benutzeraktivität hoch ist. Allerdings variiert dieser Zeitraum auch je nach Faktoren wie Zielgruppensegment und Geografie. Um die aktive Zeit der Nutzer besser zu erfassen, empfiehlt es sich daher, eine detailliertere Analyse der Verhaltensgewohnheiten verschiedener Gruppen durchzuführen. Indem wir das Leben der Benutzer verstehen

Ausführliche Erläuterung der Linux-Techniken zum Anzeigen der Dateizeit Ausführliche Erläuterung der Linux-Techniken zum Anzeigen der Dateizeit Feb 21, 2024 pm 01:15 PM

Ausführliche Erläuterung der Linux-Techniken zur Dateizeitanzeige In Linux-Systemen sind Dateizeitinformationen für die Dateiverwaltung und Nachverfolgung von Änderungen sehr wichtig. Das Linux-System zeichnet Dateiänderungsinformationen über drei Hauptzeitattribute auf, nämlich Zugriffszeit (atime), Änderungszeit (mtime) und Änderungszeit (ctime). In diesem Artikel wird detailliert beschrieben, wie diese Dateizeitinformationen angezeigt und verwaltet werden, und es werden spezifische Codebeispiele bereitgestellt. 1. Überprüfen Sie die Dateizeitinformationen, indem Sie den Befehl ls mit dem Parameter -l verwenden, um die Dateien aufzulisten.

So verwenden Sie die Zeit- und Datumsmodule in Python So verwenden Sie die Zeit- und Datumsmodule in Python Oct 16, 2023 am 08:11 AM

So verwenden Sie die Zeit- und Datumsmodule in Python. Einführung: In der Programmierung ist der Umgang mit Zeit und Datum eine sehr häufige Aufgabe. Python bietet leistungsstarke Zeit- und Datumsmodule, die Zeit- und Datumsoperationen einfacher und bequemer machen. In diesem Artikel werden die Zeit- und Datumsmodule in Python vorgestellt und spezifische Codebeispiele bereitgestellt, um den Lesern zu helfen, sie besser zu verstehen und anzuwenden. 1. Einführung in das Zeit- und Datumsmodul Das in Python integrierte Zeit- und Datumsmodul ist das Datum/Uhrzeit-Modul. Wir müssen dieses Modul zuerst vorstellen.

See all articles