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);
 ?>