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']解密;
