PHP会话无法在IE中运行

时间:2012-08-21 18:03:17

标签: php session

我认为我已经正确地将数据设置为Session,并且Firefox可以正确获取会话数据,但是IE无法获取会话数据并返回bool(false)。 这个bug有什么问题?

我是新的PHP人员,我想知道为什么PHP会在客户端而不是服务器上设置会话(就像Java一样)。

设置会话数据:

 $queryuser = $this->user_model->getUser($username, sha1($password));
        if(!empty($queryuser) && count($queryuser) > 0) {
            $user = array('islogin'=>true, 'userid'=>$username, 'nickname'=>$queryuser['nickname'], 'status'=>$queryuser['status']);
            $this->session->set_userdata('user', $user);

获取会话数据:

 $user = $this->session->userdata('user');

我知道会话的概念,我在两个浏览器上独立测试。

1 个答案:

答案 0 :(得分:0)

re:“我是新的PHP人员,我想知道为什么PHP会在客户端而不是在服务器上设置会话(就像Java一样)。”

HTTP上下文中的会话由两部分组成:

  1. 存储在服务器上的数据,浏览器无法访问。
  2. 某种令牌或标识符,通过该令牌或标识符可以唯一地标识特定用户(即,特定浏览器会话)。由于HTTP是一种基本上“无状态”的协议,因此必须将此令牌提供给客户端,并在每次请求时由客户端发回。这通常采用HTTP“cookie”的形式,这可能是你在这里遇到的问题,虽然它也可以通过其他(浏览器可见)方式传递,例如将其添加到所有URL的末尾。
  3. 无论您编写Web应用程序的语言是什么,上述内容都是正确的。他们所能做的只是为了您的方便而隐藏它。