Cookie&Session
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Cookie&Session相关的知识,希望对你有一定的参考价值。
前 言
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也会过期。
以上是关于Cookie&Session的主要内容,如果未能解决你的问题,请参考以下文章