session
Posted 刘冉
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了session相关的知识,希望对你有一定的参考价值。
session_start 开启session
概念:session把客户资料存在服务器中,给浏览器一个加密凭证,每次登录生成的凭证都不相同,浏览器用cookie保存凭证。下次访问时服务器收到凭证后,打开文件读取session信息。session_start(); // 开启session$_SESSION[‘user‘] = ‘liudehua‘; //添加参数echo $_SESSION[‘user‘]; //读取sessionsession凭证保存的目录地址 在php.ini中有session.save_path = "D:/php"
session语法学习session_start(); //创建,修改,还是销毁session,都需要先开启session设置session$_SESSION[‘user‘]=‘zhaobenshan‘; //$_SESSION就可以自由的添加,删除,修改,当成普通数组一样操作;cookie的操作,只能通过setcookie函数来进行。$_SESSION[‘school‘]=‘PKU‘;
销毁sessionunset($_SESSION[‘user‘]); //可以单独销毁某一个单元,即把$_SESSION数组某一个单元unset掉$_SESSION = array(); //可以整体把箱子给清空,即$_SESSION数组给清空session_unset(); //利用函数把箱子整体清空,效果同第2种办法session_destroy(); //彻底把箱子给毁掉,即文件都没了
探讨session的生命周期!要想让session失效,要从1:客户端的cookie 2:服务器端的session文件两个方面操作在php.ini里session.cookie_lifetime = 15选项,控制sessionid的cookie的生命周期,秒为单位 注意:如果用户篡改了cookie,让cookie的生命周期为1年,那你也判断不出来.如果想严格的让session就半小时有效,可以这样: $_SESSION[‘time‘] = 登陆时的时间戳
session的有效路径!session的有效,取决于cookie,cookie在哪儿有效,session自然就能读到。PHP.int中session.cookie_path = /选项,指定了sessionid这个cookie的有效路径是 / 路径,自然session无论在多深的目录下设置,而session在整站都有效。
cookie只能存储字符串/数字这样的标量数据session还可以存储数组/对象 (除了资源型,其他7种都可以)请注意:如果你把对象存储到session里,那么另一个读取session的页面,也必须有此对象对应的类声明才合理.否则,从session里分析出一个对象,却没有与之对应的类,则会提示: __PHP_Incomplete_Class Object从http协议的角度看,cookie信息是放在头信息里传输的,自然使用cookie之前,不能有任何主体信息的输出,空白也不行
以上是关于session的主要内容,如果未能解决你的问题,请参考以下文章