您的位置:首页 > 编程语言 > PHP开发

php中会话机制相关问题

2015-06-04 15:58 567 查看
问题思考?

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']解密;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: