当服务器创建了一个ssion(ssion_start()),服务器将会在服务器的指定文件夹下创建一个ssion文件,其名称为ssionid,并当做cookie的值发送给浏览器。浏览器每次访问该服务器时便会带着这个cookie,服务器便会识别改ssionid,找到相应的ssion文件。该文件中存放了若干键值对。该ssion文件所存放的文件夹可以在配置文件php,ini中修改。
cookie 每次请求页面的时候进行验证,如果用户信息存储在数据库中,每次都要执行一次数据库查询,给数据库造成多余的负担。cookie可以被修改的,所以安全系数太低。
ssion是存储在服务器端面的会话,相对安全,并且不像cookie那样有存储长度限制。由于ssion是以文本文件形式存储在服务器端的,所以不怕客户端修改ssion内容。实际上在服务器端的ssion文件,php自动修改ssion文件的权限,只保留了系统读和写权限,而且不能通过ftp修改,所以安全得多。
对于 cookie 来说,假设我们要验证用户是否登陆,就必须在 cookie 中保存用户名和密码(可能是 md5 加密后字符串),并在每次请求页面的时候进行验证。
如果用户名和密码存储在数据库,每次都要执行一次数据库查询,给数据库造成多余的负担。因为我们并不能 只做一次验证。为什么呢?
因为客户端 cookie 中的信息是有可能被修改的。假如你存储 $admin 变量来表示用户是否登陆,$admin 为 true 的时候表示登陆,为 fal 的时候表示未感恩父亲的话登录,在第一次通过验证后将 $admin 等于 true 存储在 cookie,下次就不用验证了,这样对么?错了,假如有人伪造一个值为 true 的 $admin 变量那不是就立即取的了管理权限么?非常的不安全。
而 ssion 就不同了,ssion 是存储在服务器端的,远程用户没办法修改 ssion 文件的内容,因此我们可以单纯存储一个 $admin 变量来判断是否登陆,首次验证通过后设置 $admin 值为 true,以后判断该值是否为 true,假如不是,转入登陆界面,这样就可以减少很多数据库操作了。
而且可以减少每次为了验证 cookie 而传递密码的不安全性了(ssion 验证只需要传递一次,假如你没有使用 ssl 安全协议的话)。即使密码进行了 md5 加密,也是很容易被截获的。
ssion 会话会为每一个开启了 ssion 会话的访问者建立一个唯一的会话 id ,用于识别用户。该会话 id 可能存储于用户电脑的 cookie 内,也可能通过 url 来传递。而对应的具体 ssion 值会存储于服务器端,这也是与 cookie 的主要区别,并且安全性相对较高。
创建 ssion
要创建 ssion 或返回已经存在的会话 ,就必须先使用 ssion_start() 函数开启一个 ssion 会话,系统会分配一个会话 id:
<?phpssion_start();//此函数没有参数,且返回值均为true。最好将这个函数置于最先,而且在它之前不能有任何输出,否则会报警?>
注册ssion变量
使用 ssion_register() 函数注册一个 ssion 变量,成功返回 true ,否则返回 fal 。
语法:bool ssion_register( mixed name [, mixed …] )
使用 ssion_register() 函数可以在目前会话下注册一个或多个全局 s本杰明巴顿奇事影评ession 变量。 参数name就是想要加入的变量名,成功则返回逻辑值true。可以用$_ssion[name]或$http_ssion_vars[name]的形式来取值或赋值。
例子:
<?phpssion_start();$urname = "nostop";ssion_register("urname");?>
在该例子中,我们向 ssion 注册了一个名为 urname 的变量,其值为 nostop 。
读取 ssion
php 内置的 $_ssion 变量可以很方便的访问设置的 ssion 变量。
例子:
<?phpssion_start();echo "登记的用户名为:".$_ssion["urname"]; //输出 登记的用户名为:nostop?>如何提高上网速度
销毁 ssion
ssion_unregister() 注销单个 ssion 变量
unt($_ssion[‘age’]); 用于注销以$_ssion[‘age’]注册的ssion变量
ssion_unt() 删除所有已注册的变量
ssion_destroy() 注销所有的ssion变量,并注销整个 ssion 会话
例子:
<?phpssion_start();ssion_unregister("urname"); //注销 ssion 某个变量ssion_unt(); //注销 ssion 会话?>
检查变量是否被登记为会话变量
ssion_is_registered
语法:boobean ssion_is_registered(string name);
这个函数可检查当前的ssion之中是否已有指定的变量注册,参数name就是要检查的变量名。成功则返回逻辑值true。
例子:
<?php ssion_start(); if(!ssion_is_registered("gender")){ //判断当前会话变量是否注册 ssion_register("gender"); //注册变量 } $gender="女"; echo $_ssion['gender']; //女?>
存取当前会话名称
ssion_name
语法:boolean ssion_name(string [name]);
这个函数可取得或重新设置当前ssion的名称。若无参数name则表示获取当前ssion名称,加上参数则表示将ssion名称设为参数name。
例子:
<?php$ssionname = ssion_name(); //取得当前 ssion 名,默认为 phpssid$ssionid = $_get[$ssionname]; //取得 ssion idssion_id($ssionid); //使用 ssion_id() 设置获得的 ssion id?>
存取当前会话标识号
ssion_id
语法:boolean ssion_id(string [id]);
这个函数可取得或重新设置当前存放ssion的标识号。若无参数id则表示只获取当前ssion的标识号,加上参数则表示将ssion的标识号设成新指定的id。
设置 ssion 的生存期
tcookie:向客户端发送一个 http cookie。
<?php ssion_start /自然常数e的由来/ 保存一天 $lifetime = 24 * 3600; tcookie(ssi给小朋友讲故事on_name(), ssion_id(), time() + $lifetime, "/");?>
ssion_t_cookie_params:设置 ssion 的生存期的,该函数必须在 ssion_start() 函数调用之前调用。
如果客户端使用 ie 6.0 , ssion_t_cookie_params(); 函数设置 cookie 会有些问题,所以我们还是手动调用 tcookie 函数来创建 cookie。
// 保存一天
<?php $lifetime = 24 * 3600; ssion_t_cookie_params($lifetime); ssion_start(); $_ssion["admin"] = true;?>
设置 ssion 文件的保存路径
ssion_save_path() :必须在 ssion_start() 函数调用之前调用。
<?php // 设置一个存放目录 $savepath = "./ssion_save_dir/"; // 保存一天 $lifetime = 24 * 3600; ssion_save_path($savepath); ssion_t_cookie_params($lifetime); ssion_start(); $_ssion["admin"] = true;?>
<?phpssion_start(); //启动ssion$urname='nostop';ssion_register('urname'); //注册一个名为urname变量echo '登记的用户:'.$_ssion['urname']; //登记的用户:nostop 读取ssion变量$_ssion['age']=23; //声明一个名为age的变量,并赋值echo '年龄:'.$_ssion['age']; //年龄:23ssion_unregister('urname'); //注销ssion变量echo $_ssion['urname']; //空echo $_ssion['age'];//23unt($_ssion['age']); //注销ssion变量echo '登记的用户:'.$_ssion['urname']; //空echo '年龄:'.$_ssion['age']; //空?>
本文发布于:2023-04-06 21:59:46,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/8632327365a1ad76b600961fd5f0abea.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:PHP Session机制简介及用法.doc
本文 PDF 下载地址:PHP Session机制简介及用法.pdf
留言与评论(共有 0 条评论) |