php 浏览器新session,网站session技术

session技术原理:

1

不同的用户,在浏览使用网站过程中,会产生不同的数据;

这些数据,都可以存储在服务器端

——但必须解决一个问题:哪份数据是哪个用户(浏览器的);

解决之道:

在存储某份数据的时候,生成一个不会重复的唯一的cookie数据,并将该cookie发给浏览器。

则该浏览器重新请求其他网页时,就可以将该cookie数据返回来,以识别出原来存储的“自己的”数据。

原理图:

实际上,该用来标识一个用户的“唯一身份”的cookie数据:

其名字为:PHPSESSID //其实就是cookie名。

其值类似:40324;e320424;w$$%@s32455235 ——随机不重复!

END

session使用初步

就两件事:

赋值:

$_SESSION[‘名’] = 值;

取值:

$v1 = $_SESSION[‘名’];

可见:

1,session的使用,几乎跟用数组就一样了!

2,实际上,前提是:先要“开启”session:session_start(); 即该代码是需要先执行session_start()才好使

3,session名跟cookie一样了,自己取名(类似变量名)

4,session值:几乎可以是各种类型的数据;

举例:

7session-base-1.php中:

2

7session-base-2.php中:

7session-base-2.php中:

3

在没有浏览7session-base-1.php之前,先浏览7session-base-2.php,则都显示“没有session”。

浏览7session-base-1.php之后,在浏览7session-base-2.php,则都显示“有session....”

我们来观察一下浏览器中“多出来”的cookie数据:

4

这种数据(名为PHPSESSID的cookie数据),是在session_start()这一行代码执行的时候产生的。

END

session细化

通常:

cookie用于存储“持久数据”——即关闭浏览器后,“以后”再打开还有效的数据,可以设定一个应用中合适的有效时间而已;

session用于存储“会话数据”——即只在浏览器窗口存活周期有效,关闭就无效了。

——但也有一个默认的最大时间(通常是24分钟);

基本设定:

可以设定有效周期:浏览器窗口生存周期——即关闭浏览器就结束了;

用session.cookie_lifetime,其实是设定的session对应的cookie的有效时间

默认不设置,就是0,表示是“浏览器生存周期”

可以设定有效路径:全站有效;

用session.cookie_path,

默认不设置,就是“全站有效”

可以设定有效域名:当前域名有效;

用session.cookie_domain。

默认不设置,就是“当前站点有效”

他们有两种设置法:

方法1:php.ini中:影响全局

方法2:直接带代码中:只影响当前网页

ini_set(“session.cookie_lifetime”, 60*1); //60秒*1分钟

注意这里的写法,跟cookie设置周期的不同:cookie是:time() + 60*1

ini_set(“session.cookie_path”, ‘/d1’); //或者“/”

ini_set(‘session.cookie_domain”, “xxx.com”); //

演示代码:

8session-expire-1.php中:

8session-expire-2.php中:

先浏览8session-expire-1.php,则在一分钟之内浏览8session-expire-2.php,可以看到“有session”

但如果在一分钟之后浏览8session-expire-2.php,可以看到“没有session”。

原因就是:1分钟之后,该session数据对应的PHPSESSID的cookie数据已经超时,无法传回到服务器端。

以上几项的设置,可以使用一个函数一次性搞定:

session_set_cookie_params( 超时时间秒,'路径', '域名')

比如:

session_set_cookie_params( 60*12, ‘/’, ‘php44.com’); //12分钟超时。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值