赞
踩
本文由 ChatMoney团队出品
在PHP中,Session的设置与管理与Cookie不同,必须首先启动。这通过调用session_start()
函数来完成。该函数的语法格式为:
bool session_start(void)
注意:在调用session_start()
之前不能有任何输出。
当用户第一次访问网站时,session_start()
会创建一个唯一的Session ID,并通过HTTP响应头将这个ID保存到客户端的Cookie中。同时,在服务器端也会创建一个以Session ID命名的文件,用于保存该用户的会话信息。
用户再次访问时,通过HTTP请求头携带Cookie中的Session ID。这时,session_start()
不会创建新的Session ID,而是在服务器上查找与Session ID同名的文件,并应用之前保存的会话信息。
Session通过数组形式使用,例如:$_SESSION['session名']
。
在PHP中使用Session变量,除了启动外,还需注册。注册和读取Session变量都通过$_SESSION
数组完成。例如:
- <?php
- session_start();
- $_SESSION["username"]="skygao";
- $_SESSION["uid"]=1;
- ?>
执行后,变量会被保存在服务器端的文件中。
使用完Session变量后,可以删除。用户退出时,应销毁其所有信息。
使用session_destroy()
函数可以销毁所有与当前Session相关的资料。
使用unset()
函数可以释放单个Session变量。
清除客户端Cookie中的Session ID,需要使用setCookie()
函数。
例如:
- <?php
- session_start();
- $_SESSION = array();
- if(isset($_COOKIE[session_name()])) {
- setCookie(session_name(), "", time()-42000, "/");
- }
- session_destroy();
- ?>
session.auto_start
:请求启动时初始化Session。
session.cache_expire
:设置缓存中的会话文档过期时间。
session.cookie_lifetime
:设置Cookie的保存时间,即Session的过期时间。
session.cookie_path
:Cookie的有效路径。
session.cookie_domain
:Cookie的有效域。
session.name
:用于Cookie中的Session名称。
session.save_handler
:用于保存/取回数据的控制方式。
session.save_path
:数据文件保存的路径。
session.use_cookies
:是否使用cookies。
当用户未正常退出而直接关闭浏览器时,服务器端的Session文件不会被删除。为了清理这些“垃圾”,PHP有一个自动回收机制。
session.gc_maxlifetime
:指定过期时间。
session.gc_probability
和session.gc_divisor
:设置垃圾回收程序的概率。
例如,如果session.gc_probability=1
且session.gc_divisor=100
,则概率为“1/100”。
如果客户端禁用Cookie,PHP可以自动将Session ID添加到URL中。在Linux平台上,如果客户端禁用Cookie,系统会自动修改URL以包含Session ID。在Windows平台上,可以使用常量SID来实现相同功能。
例如:
- <?php
- session_start();
- echo '<a href="demo.php?'.session_name().'='.session_id().'">连接演示</a>';
- ?>
本文由ChatMoney团队出品,ChatMoney专注于AI应用落地与变现,我们提供全套、持续更新的AI源码系统与可执行的变现方案,致力于帮助更多人利用AI来变现,欢迎进入ChatMoney获取更多AI变现方案!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。