a.php
------------------
<?php
session_start(); 
session_register("username");
$_SESSION["username"]="user";echo $_SESSION["username"].'<br>'; 
echo "<a  href = 'b.php'>b.php!</a>";
?>b.php
----------------
<?php
session_start(); 
echo $_SESSION["username"].'<br>'; 
echo "<a  href = 'a.php'>a.php!</a>";
?>
-----------------------------------
a页面可以输出session的值,而b页面不能输出session的值。
附php.ini
[Session]
session.save_handler = filessession.save_path = /var/lib/php/sessionsession.use_cookies = 1session.name = PHPSESSIDsession.auto_start = 0session.cookie_lifetime = 0session.cookie_path = /session.cookie_domain =session.serialize_handler = phpsession.gc_probability = 1
session.gc_divisor     = 1000session.gc_maxlifetime = 1440session.bug_compat_42 = 0
session.bug_compat_warn = 1session.referer_check =session.entropy_length = 0session.entropy_file =;session.entropy_length = 16;session.entropy_file = /dev/urandomsession.cache_limiter = nocachesession.cache_expire = 180session.use_trans_sid = 1

解决方案 »

  1. cvm
  2. 帮忙看看php.ini有没有问题吧
    谢谢
      

  3. 我看我的session.save_path = /var/lib/php/session目录下没有内容还有session.cookie_domain 是什么意思啊?
      

  4. 1、确认 /var/lib/php/session 一般用户可写
    2、去掉 session_register("username");
    因为在你的 a.php 中没有定义 $username,于是在 session 存盘的时候,实际上是将由
     $_SESSION["username"]="user";
    定义的 session 变量 username 删除了
      

  5. 谢谢两位的帮助
    问题已解决
    1.修改/var/lib/php/session 文件夹的权限
    2.register_globle设为off, 去掉 session_register("username")