Cookie禁用使用Session值方法:
首先:
PHP中的Session在默认情况下是使用客户端的Cookie来保存Session ID的,所以当客户端的cookie出现问题的时候就会影响Session了。必须注意的是:Session不一定必须依赖Cookie,这也是Session相比Cookie的实用之处。
当客户端的Cookie被禁用或出现问题时,PHP会自动把Session ID携带在在URL中,这样再通过Session ID就能跨页使用Session变量。
不是自带就能使用的,需要在配置文件中设置php.ini:
1: session.use_trans_sid = 1 (是否在url使用sessionID,启用,可单独设置即可)
或
2: 者打开“--enable-trans-sid”选项(让PHP自动携带Session ID,共享session值,可单独设置即可)
或
3: session.use_only_cookie=0 (是否仅使用cookie来保存sessionID,关闭这个特性,要结合1或2条件使用)
*当修改了设置条件值后,如果浏览器禁用了cookie,那么php会子在所有的a标签内增加sessionID传输
代码例子(禁用Cookie情况下):
leyangjun.php
<?php
session_start();
$_SESSION[’name’]="乐杨俊";
$sn = session_id();
$url="<a href=""test2.php?id=".$sn."">共享Session</a>";
echo $url;
?>
test2.php
<?php
session_id($_GET[’id’]);
session_start();
echo "共享Session变量name的值为:".$_SESSION[’name’];
?>
例子二(不用连携带sessionID):
yangjun.php
<?php
session_start();
$_SESSION[’name’]="乐杨俊";
$url="<a href>共享Session2</a>"; //点击的时候注意看浏览其器左下角对应的值
echo $url;
?>
lekey.php
<?php
session_start();
var_dump($_SESSION);
?>