1.cookie
(1)setcookie()函数的变量解释
参数 | 说明 | 举例 |
---|---|---|
name | cookie类型变量的名字 | |
value | cookie变量的值 | |
expire | cookie到期的时间 | setcookie(“time”,“hello”,time()+10)表示到期时间=当前时间+10秒,setcookie()会自动生成一个cookie文件,失效后删除cookie文件,; 不设置到期时间,一直有效,直到关闭浏览器,关闭浏览器器后就删除cookie文件;只要cookie没失效即是关闭浏览器或重启计算机,cookie值依然不变 |
path | cookie的作用域 | 为"/" 在整个domain内有效; "/child"表示在domain的/child及其子目录下有效;默认是当前目录 |
domain | cookie有效域名 | 若设置成"fuck.com"则所有子域均有效 |
secure | 是否仅通过安全的HTTPS | 若为0 cookie在HTTP 和HTTPS连接上有效 若为1 cookie仅在HTTPS连接上有效 |
HTTPOnly | 是否禁止页面的JavaScript访问被HTTPonly标记的cookie | true 不允许访问带有HttpOnly的cookie;反之,可以 |
(2)session cookie 与Third party cookie
区别:
session cookie(仅仅是个名称,注意区分session与session cookie)是没设置expire的cookie,存储在内存中;
third-party cookie是设置expire的cookie,存储在硬盘中;
浏览器最多存储300个cookie文本,每个域最多20个cookie文件,每个cookie文件最大为4KB
2.session
session存储在服务端上,因此在安全方面上比cookie要好一点;
session是将session的信息存储在服务器上,并通过sessionID来传递用户信息
,服务器接收到sessionID后,并根据这个sessionID来提供相关的session信息;
下面接收
启动session
使用session_start()函数,PHP从session仓库(以sessionId命名的文件)中加载已经存储的session变量 ;
注意一点:一些配置session的配置函数要在session_start()之前
例如:session_set_cookie_params() //设置session失效时间 秒为单位
不过不推荐使用session_set_cookie_params(),因为有些浏览器会出现问题
session_pave_path() //设置session文件保存目录
等;必须放在session_start()之前
启动之后在添加session信息
(用法示范)
设置失效时间
有两种(1)直接使用函数session_set_cookie_params()
(2)跟设置cookie一样
setcookie(session_name(),session_id(),time()+60,"/");
这样cookie失效那么sessionID也失效
(只要没过期这个sessionID就不变)
销毁session
(1)unset(
S
E
S
S
I
O
N
[
′
t
i
m
e
′
]
)
∗
∗
注
意
:
千
万
不
要
这
样
u
n
s
e
t
(
_SESSION['time']) **注意:千万不要这样unset(
SESSION[′time′])∗∗注意:千万不要这样unset(_SESSION)来销毁,这样会禁止整个会话**
(2)$_SESSION=array() 用空数组赋值
(3)session_destroy()结束当前会话
session工作原理
首先,服务器分配给客户一个sessionID并在服务端上创建以sessionId命名的文件
接着,session变量存储到这个文件上