在VISTA是用IIS配置PHP环境的,运行PHP一切都正常,在PHP.INIi文件的SESSION.SAVE_PATH和 SESSION.COOKIE_PATH的路径都已经设置好了,但就是不能把SESSION传到下一页,但换回XP又可以传的,请教各位这是什么问题?
a.php
<?
  session_start();
  $_SESSION["id"] = "123";
  echo " <a href='b.php'>b.php </a>";
?>b.php
<?
  session_start();
  echo $_SESSION["id"];
?>

解决方案 »

  1.   

    只有IIS环境不一样的话,那当然是IIS版本问题咯...还是推荐用Apache,安个xampp整合包多方便...
      

  2.   

    在session_start();上一句加
    session_id(SID);
    我前几天刚碰到这个问题,你再试一下,如果还是不行的话
    就换到Apache下吧
      

  3.   

    1.xp.vista看看你的php版本是多少(php新版跟旧版的变量共享方式是不同的)
    2.php的配置文件(php.ini)里边有个设置,具体名字我忘记了,大概有两种方式就是:
      a.只能用$_Session["xx"]方式来读取会话,
      b.另一种设定就是可以$xx 或 $Session["xx"]都可以读取会话
    版本较低的php是以b的方式来设的。
      

  4.   

    补充一下,它的影响范围比较广:
    php4.0或以下的版本都有可能出现这样的情况
     ?id=xx
     $id=xx
     $_SESSION["id"]=xx
    三种赋值方式,其实是同属一个变量,
    解决办法:
     ?url_id=xx
     $var_id=xx
     $_SESSION["id"]=xx
    这样设置就各有影响。
      

  5.   

    Vista的权限管理更严格,所以,你要确保你的SESSION保存路径是开放了读写权限给PHP的。一般我会在服务器上开个temp目录,然后开放这个目录的所有权限给everyone。然后将php.ini中的session保存目录指向那里。