a.php中用httpClient::quickPost()访问b.php页面,a中定义了$_SESSION["NAME"]='ABC',那么,在b.php页面中,如何获得这个session的值,它们是同一个网站的页面。
我在b.php中使用了
<?php
session_start();
echo $_SESSION['NAME'];
?>
但b中并没有得到a中的session值,请高手指点,我想在b页面中得到a页面中的这个session值,应该怎样做?

解决方案 »

  1.   

    a.php
    <?php
    session_start();
    require_once("./HttpClient.class.php");
    $_SESSION["name"]="abc";
    $pageContents=httpClient::quickPost("http://192.168.0.2/liti/quit.php",array("author"=>"jacksq"));
    echo $pageContents;
    ?>b.php
    <?php
      session_start();
      echo"作者是:".$_POST["author"];
      echo"<br>姓名:".$_SESSION["name"];
    ?>
    在这里,b.php页面没有得到上一页面中定义的session
      

  2.   

    quit.php中有没有代码把session注销掉了?
    没有看到什么地方跳转到b.php执行
      

  3.   

    $pageContents=httpClient::quickPost("http://192.168.0.2/liti/quit.php",array("author"=>"jacksq"));
    这一句的功能就是在a.php中将数据author=jacksq以POST方法传递到quit.php中,并将quit.php中的内容放入到$pageContents变量中。这是一个用PHP将数据以POST方法进行提交的程序。
      

  4.   

    httpClient::quickPost()访问b.php 应该是一个新的请求了。
    和a的请求不是一个,a里写入session,只会应用到a的请求上,不会应用到httpClient::quickPost()访问b.php的请求上通过传入session_id,在B里先session_id($传入的session_id);不知道这样是否可以,未测试。再不行,就在a里设置session_path到你网站的某个可读写的文件夹。
    在B里通过传入的session_id读取:“那个可读写的文件夹路径/sess_传入的session_id”这个文件的内容,里面的内容好象和json格式一样(不一样的话,自己组装一下,反正格式差不多的),通过json_decode(文件内容,true);可以得到一个数组,直接从数组里取值就可以了。