前 言
cookie $ session
Cookie&Session是常用的会话跟踪技术,二者都能记录状态,前者是将状态数据保存在客户端,后者则保存在服务端。
下面简单介绍一下Cookie和Session的内容以及使用方法,并没有关于区别之类的详解
1 Cookie |
设置cookie
参数 ① cookie的name ② 需要存到cookie的值 ③ cookie的有效期,需要是UNIX时间戳,可以使用time()函数获得。单位为秒 ④ cookie的有效路径,默认只在当前目录有效。设置"/"表示所有目录有效 当设置"/"将cookie保存到全局时,需要注意本目录下是否有同名cookie,两者并不会回想覆盖; 比如下面两行代码同时执行,会在当前目录和全局各生成一个cookie,两者不会代替 在当前目录读取cookie时,会优先读取本目录下的cookie读取cookie超全局数组$_cookie
删除cookie: ① 设置 一个同名cookie,时间为过期; ② 省略setcookie()函数的所有参数,只保留name即为删除操作
2 Session |
使用session必须先启动session;
使用session_start()函数启动session,注意这个函数之前不能有任何输出语句,一般写在文件最上方; 修改PHP.ini文件,设置session.auto_start = 1可以启动时初始化session。 但是,设置自动启动后,将不能往session中存入对象, 因为对象需要在启动之后才能产生。在使用session后,会在cookie中保存一个键为"PHPSESSID"的记录,用于记录session的唯一标记; 当浏览器关闭以后,sessionID默认失效session的存值取值: 启动session后,直接操作session全局数组即可 $_SESSION["user"] = "hehe"; 存值 echo $_SESSION["user"]; 取值销毁session的几种方式: ①删除session中的某一项: unset($_SESSION["键名"]); ①清除session中全部数据: $_SESSION=array(); ③删除服务器端保留session信息的文件 session_destroy();两个常用配置: session.cookie_lifetime=0; 设置浏览器关闭时,保存SESSIONID的cookie文件就被删除。也就是说浏览器一关闭,session就失效; session.gc_maxlifetime;设置过期session时间,默认1440秒(24分钟)。也就是说,即便是浏览器未关闭,在24分钟没有操作的情况下,session也会过期。