Home  >  Article  >  Backend Development  >  php中会话机制相关问题

php中会话机制相关问题

WBOY
WBOYOriginal
2016-06-23 13:33:23865browse

问题思考?

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

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn