【问题标题】:Codeigniter - Using Userdata for DB QueryCodeigniter - 使用用户数据进行数据库查询
【发布时间】:2018-10-18 23:35:12
【问题描述】:

我想使用会话数据作为数据库中查询的条件,但它只返回 NULL。我试过 $this->session->userdata('account'),但还是不行。

功能 - 登录/设置用户数据:

    public function login_auth()
  {
        $this->load->helper('security');
        $this->form_validation->set_rules('username', 'Username', 'trim|required|xss_clean');
        $this->form_validation->set_rules('password', 'Password', 'trim|required|xss_clean');
        if ($this->form_validation->run() == FALSE) {
            if(isset($this->session->userdata['logged_in'])){
                $this->dashboard();
            }else{
                $this->index();
            }
        } else {
            $data = array(
            'username' => $this->input->post('username'),
            'password' => $this->input->post('password')
            );
            $result = $this->agent_model->login($data);
            if ($result == TRUE) {
                $username = $this->input->post('username');
                $result = $this->agent_model->read_user_information($username);
                if ($result != false) {
                    $session_data = array(
                    'username' => $result[0]->username,
                    'owner' => $result[0]->owner,
                    'account' => $result[0]->account,
                    'id' => $result[0]->id
                    );
                    $this->session->set_userdata('logged_in', $session_data);
                    $this->dashboard();
                }
            } else {
                $data = array(
                'error_message' => 'Invalid Username or Password'
                );
                $this->load->view('header');
                $this->load->view('pages/login', $data);
                $this->load->view('footer');
            }
        }
  }

Function - Using Userdata->Account 作为条件(来自另一个函数)

$sess_account = $this->session->userdata('account');
    var_dump($this->session->userdata('account'));
    $coords = $this->map_model->get_coordinates($sess_account);

我在这里错过了什么吗?任何帮助都非常感谢。谢谢!

【问题讨论】:

  • 我们需要更多信息。首先,您如何设置该会话数据值?你可以发布那行代码吗?另外,您可以通过检查 $_SESSION 值来查看会话中的内容。示例:var_dump($_SESSION);
  • 你能把这个 somplace 放在你的代码中并给我们看输出吗? print "<pre>".print_r($this->session(), true)."</pre>";

标签: php codeigniter session


【解决方案1】:

如果您确定应该设置会话项“logged_in”并且$this->session->userdata['logged_in'] 返回null,则很可能您没有正确配置session

会话和/或 cookie 项的 $config 值几乎总是不正确的。

Here is a git repo 应该可以帮助您测试您的设置。

【讨论】:

  • 谢谢!我发现我在配置上有错字。修好了!
猜你喜欢
  • 2013-01-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-03
  • 1970-01-01
  • 2015-04-06
  • 1970-01-01
相关资源
最近更新 更多