标签:key har 自动启动 页面 配置 启用 type set 永久
配置指令
确定如何存储会话信息
session. save_handler = files(平面文件)mm(共享内存)sqlite(SQLite数据库)user(自定义)
如果session.save_handler = files,则session.save_path必须指向存储目录
session.auto_start = 1 开启自动启动会话
session.name = string 设置会话名字
session.use_cookies = 0 将使用URL重写
如果session.use_cookie被禁用,用户唯一的SID必须要附在URL后面,需要手动添加
session.use_trans_sid = 1 自动将用户SID变量附加到每个URL后面
session.cookie_lifetime = 0 确定会话cookie的有效期默认为永久(0秒)
session.cookie_path = string 确定cookie在那个路径中是有效的
session.cookie_damain = string 确定cookie在那个域有效
若忽略对此指令设置,则cookie的域被设为生成他的服务器主机名
session.cookie_damian = www.xiukang.com
如果网址子域中使用会话,比如:abc.xiukang.com、sear.xiukang.com、red.xiukang.com
session.cookie_damian = .xiukang.com
如果使用URL重写来传播会话ID,就可以通过复制和散播URL来查看某个会话内容
session.referer_check = string 指令来减少这种可能性,它可以指定一个用于验证每位用户的字串,如果没有此字串,SID将失效
(。。。)
处理会话
session_start()函数
HTTP会忘记用户过去或将来的环境,所以需要session_start()函数每次请求显示的启动或恢复会话
函数session_start()创建新会话(未找到SID)或继续当前对话(存在SID),这取决于是否拥有SID
只需如下调用该函数
session_start();
session_unset()函数清楚存储在当前会话中的所有会话变量,但不会从存储机制中完全删除对话
session_destroy()函数可以从存储机制中完全删除对话,使当前会话失效
如果不想在会话结束后使用cookie,需要将php.ini文件中session.cookie_lifetime设置为0(默认)
虽然PHP可以自动创建和传播SID,但有时希望手动设置和获取这个ID,函数session_id()可以完成这个任务
函数session_id()可以设置和获得SID,如果没有参数则获取当前SID,如果有参数,该参数就是SID
session_start();//创建一个新的会话 echo session_id();//输出SID:gc9lu35rda4ttse59lc07mgbup
会话变量用来管理用户一起从一个页面到下一个页面的数据
就像对待其他变量一样设置和删除会话变量,不过需要在$_SESSION超级全局上下文中引用这些变量
session_start();//创建会话 $_SESSION["username"] = "user"; echo $_SESSION["username"];
可以使用unset()函数删除变量
session_start();//创建会话 $_SESSION["username"] = "user"; echo $_SESSION["username"]; unset($_SESSION["username"]);//unset()函数删除变量
PHP会自动处理会话的编码和解码
编码会话数据(手动)
session_encode()
//创建新会话 session_start(); //设置一下会话变量 $_SESSION["name"] = "xiu"; $_SESSION["age"] = "25"; //编码所有会话数据为一个字符串并返回结果 $sessionVar= session_encode(); echo $sessionVar;//返回:name|s:3:"xiu";age|s:2:"25";
解码会话数据(手动)
session_decode()
session_start();//创建新会话 $_SESSION["name"] = "xiu";//设置一下会话变量 $_SESSION["age"] = "25"; $sessionVar = session_encode();//编码所有会话数据为一个字符串并返回结果 session_decode($sessionVar);//解码当前编码的会话 echo $_SESSION["name"];//xiu echo $_SESSION["age"];//25
实际的会话处理实例
MySQL表
create table users ( id integer not null auto_increment, first_name varchar(255) not null, user_name varchar(255) not null, primary key(id) )
HTML表单
<form action="index.html" method="post"> <p>username:</p> <input type="text" name="username" /> <p>password:</p> <input type="password" name="password"/><br/><br/> <input type="submit" value="GO"> </form>
PHP管理自动登陆代码
创建定制会话处理程序
标签:key har 自动启动 页面 配置 启用 type set 永久
原文地址:https://www.cnblogs.com/xiukang/p/8569929.html