首页 >后端开发 >php教程 >php中会话机制相关问题

php中会话机制相关问题

WBOY
WBOY原创
2016-06-23 13:33:23950浏览

问题思考?

1、客户端禁用cookie后,还能访问SESSION吗?

PHP中的session在默认情况下是使用客户端的Cookie来保存session id的,所以当客户端的cookie出现问题的时候就会影响session了。但是Session并不完全依赖Cookie,它还可以通过URL Get传递session id的。这需要你将php.ini中session.use_trans_sid = 1,这表示允许SessionID通过URL明文传输

php.ini 中 SESSION 的配置
session.use_only_cookies = 1; // 开启仅使用cookies存放会话id
session.use_trans_sid = 1; // 允许SessionID通过URL明文传输

在这种情况下虽然已经允许了SessionID通过URL明文传输,担是同时又开启了仅使用cookies存放会话SessionID,所以在URL中明文传输的PHPSESSIONID参数值是无效的,SESSION不能用。
php.ini 中 SESSION 的配置
session.use_trans_sid = 0; // 禁止SessionID通过URL方式明文传输


2、7天免登录的实现方式

(1)cookie方式

setcookie('uname',加密信息,time()+3600*7);//cookie方式实现免登录
对$_COOKIE['uname']解密;

(2)session

setcookie(session_name(),session_id(),time()+3600,"/");
session('uname',加密信息);  //设置cookie
对$_COOKIE['uname']解密;

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn