0

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

我是 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');

我知道会话的概念,我在两个浏览器上分别进行了测试。

4

1 回答 1

0

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

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

  1. 存储在服务器上的数据,浏览器无法访问。
  2. 某种令牌或标识符,通过它可以唯一标识特定用户(即特定浏览器会话)。由于 HTTP 从根本上说是“无状态”协议,因此必须将此令牌提供给客户端,并在每次请求时由客户端发回。这通常采用 HTTP“cookie”的形式,这可能是您在这里遇到的问题,尽管它也可以通过其他(浏览器可见)方式传递,例如将其添加到所有 URL 的末尾。

无论您使用哪种语言编写 Web 应用程序,上述内容都是正确的。他们所能做的就是为了您的方便而隐藏它。

于 2012-08-21T18:17:23.183 回答