日期:2014-05-17  浏览次数:20466 次

session中值为0将转换为false的问题
A页面

/*判断SESSION是否开启*/
        if(session_id() ? false : true)
            session_start();
$_SESSION['uid'] = 0;
$_SESSION['username'] = 'admin';


B页面

/*判断SESSION是否开启*/
        if(session_id() ? false : true)
            session_start();
print_r($_SESSION);
var_dump($_SESSION['uid']);

执行A页面后再执行B页面,B页面输出

Array ( [uid] => [username] => admin ) bool(false)


Cookie作用域正常,且本地测试不存在跨域问题。两个页面session_id一致,页面编码一致。A页面中的$_SESSION['uid']是int(0),B页面却是bool(false),这个问题困惑两天,不知道哪里出了问题,请高人赐教

------解决方案--------------------
我运行你的代码是正常的
------解决方案--------------------
有些框架会自己session_start的,找找有没有
------解决方案--------------------
很显然,你的框架对 $_SESSION['uid'] 做了判断、处理
既然是“小众”的,你就慢慢找吧