php下session cookie的基本原理

 

cookie 基本原理:

1,允许服务器向浏览器发送指令,用来管理存储在浏览器端的cookie数据;

2,浏览器如果存储了某台服务器上所设置的cookie数据,那麽以后的每一次请求的时候,都会主动的携带所存储的cookie数据到服务器。

cookie基本操作;

设置cookie(增删改):

cookie的增删改是通过setCookie这个函数完成的!最起码又两个参数:

setCookie (名字,值);

修改cookie:

还是使用setCookie 这个函数,修改就是保持cookie的名字不变,而值发生改变。

删除cookie:

还是使用setCookie()函数,只是将值设置为空字符串就是删除当前cookie.

setCookie(名字,' ');

查cookie:

使用预定义超全局数组变量$_COOKIE完成对cookie数据的获取,

php会将浏览器发送请求的时候所携带的所有的cookie数据存放到$_COOKIE数组变量中,供所有的脚本使用。

cookie的属性:

cookie的有效期:

cookie的有效期是一个会话周期(相当于两个人聊天,一个人离开,会话结束),就是关闭浏览器的时候,默认关闭时间是在会话结束后,也可以支持自己设置有效期,添加setcookie()函数的第三个参数。

setcookie("TestCookie", $value, time()+3600);//有效期就是在当前时间3600秒后结束会话

有效期的几个特殊的值:

0:默认值(缺省值),表示一个会话周期

time()-1:表示一个过去的时间,这是删除一个cookie的最标准的做法,只要是一个过去的时间就行。

php_int_max:

注意:浏览器在向服务器发送服务请求的书时候,首先会检测当前的cookie数据是否还处于有效期内,只有还没有过期的cookie数据才会在请求的时候主动携带。

COOKIE 和SESSION 之间的联系:

1、用户向服务器发送用户名和密码。

2、服务器验证通过后,在当前对话(session)里面保存相关数据,比如用户角色、登录时间等等。

3、服务器向用户返回一个 session_id,写入用户的 Cookie。

4、用户随后的每一次请求,都会通过 Cookie,将 session_id 传回服务器。

5、服务器收到 session_id,找到前期保存的数据,由此得知用户的身份。

开启session机制:

1,设置为自动开启,在php.ini中进行配置:

但由于自动开启后,每一个脚本都会进行相关的session的初始化工作,但不是每一个脚本都要

使用session机制,一般都不会设置为自动开启。

2,在各个需要session机制的脚本中手动开启(推荐使用):

通过session_start()函数来完成,只用使用session_start()函数,系统才会进行一些session的初始化工作。

这样做的好处,需要的时候开启,不需要的时候不开启,不同的脚本之间都需要单独开启,互不影响!

操作session机制:

session数据的增删改查,都是通过使用$_SESSION这个预定义超全局数组变量来完成的,

我们可以像操作数组一样来操作$_SESSION这个变量(只不过$_SESSION这个数组在session机制下有特殊的含义而已)。

session属性:

修改session的属性:

1.直接在php.ini中直接修改(不推荐使用)。

2.通过在脚本中使用函数来更改

session_set_cookie_params(有效期,有效路径,有效域,是否安全传输,是否仅HTTPONLY);

注意:该函数要在session_start之前进行设置!一般只用前三个属性!有效期直接写时间间隔,不用加上time();

session 的其他语法:

1.session数据可以是除了资源型之外的其他的任意类型(cookie只能是字符串类型)。

2.$_session数组元素的下标仅仅支持字符串类型(支持关联型数组),而不能是索引数组。

session与cookie的区别:

 cookiesession
存储位置浏览器端服务器端
浏览器携带的数据量少(只携带session_id)
存储的类型只能是字符串任意类型(除去资源型)
安全性较低
默认的有效路径当前目录及其子目录整站有效
数据的存储量有限制一般是4k理论上是无限制的

session数据的删除与销毁:

session数据的删除与销毁有三个层次:

1,删除其中某一个元素

2,清空整个的session的数据

3,销毁会话数据区

通过函数session_destroy()来完成

$_session 变量与会话数据区之间的交互:

1,第一次访问

之所以在程序结束之前将$_SESSION的值写入会话数据区,是因为当一个脚本结束的时候,整个脚本资源

都销毁了,包括$_session这个数组变量,所以要在销毁之前写入会话数据区中以实现数据的持久化存储!

2,第二次访问:

3.第三次访问

4.第四次访问,

由于之前的会话数据区已被销毁,所以第四次访问相当于第一次访问,系统会为浏览器重新建立一个新的会话数据区。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值