1、Cookie禁用了以后Session还能用吗?如果可以,怎么做
2、默认配置下,以session为登录凭证的站点,浏览器关闭了以后需要重新登录,如果想浏览器关闭以后重开还能用该怎么处理
3、服务器上session文件的清理机制是怎样的,怎样做可以保证会话关闭之后session文件及时清除,这样可取吗
session.cookie_lifetime //客户端cookie的生命周期 - 默认设置为0也就是浏览器关闭就删除该cookie session.gc_maxlifetime //session文件在服务器的声明周期-不保证session信息立即会得到删除 - 修改session.gc_probability=1可以但是对服务器压力加大
ini函数设置:
ini_set("session.cookie_lifetime",'3600');
将客户端的cookie时间设置的长一点就不会每次重新开启浏览器都要重新登录
浏览器禁用cookie的时候session如何启用:
<?php session_start(); $sn = session_id();//获取session_id的值并拼接到链接之中 $url='<a href="http://localhost/test/b.php?sn='.$sn.'">下一页</a>'; echo $url;
通过get参数设置会话ID - (浏览器存储的PHPSESSION的值):
<?php //获取session_id之后设置当前的会话ID session_id($_REQUEST['sn']); session_start(); date_default_timezone_set('PRC'); var_dump($_SESSION['a']);
设置以下参数会自动给链接带上会话ID
session.use_cookies = 0 session.use_only_cookies = 0 session.use_trans_sid = 1
测试脚本
<?php ini_set('session.use_cookies', 0); ini_set("session.use_only_cookies",0); ini_set("session.use_trans_sid",1); session_start(); $url='<a href="b.php">下一页</a>'; echo $url;
你会看到生成的链接是这样的:
http://localhost/test/b.php?PHPSESSID=***