请帮助我!我不知道该怎么办。我需要你的帮助
Message: Call to a member function userdata() on null
Filename: /home/xxxxx/xxxxx.x.it/xxx/application/libraries/Auth.php
Line Number: 23
回溯:
(页) 功能:get_user
(控制器) 功能:_costruttor
function get_user() {
$name = $this->session->userdata('id');
if ($name) {
$this->obj->db->where("id",$this->obj->session->userdata("id"));
$this->obj->db->where("ip",$this->obj->input->ip_address());
$user= $this->obj->db->get("u_user")->row_array();
if ($utente) {
$this->user = $user;
}
}
class MY_Controller extends CI_Controller {
function _costruttor() {
parent::__construct();
$this->load->library("encrypt");
$unlocked = array('login');
$this->page->get_user();
$this->load->driver('cache', array('adapter' => 'file', 'backup' => 'file'));
if (!$this->page->get_user() AND ! in_array(strtolower(get_class($this)), $unlocked)) {
$this->session->set_userdata('back_url', current_url());
redirect('login/');
}
}
}
答案 0 :(得分:0)
我认为您忘记了包含session
库。
有两种解决方法:
1)在页面中动态包含session
库。
插入此
$this->load->library('session');
在一行之前。
$name = $this->session->userdata('id');
2)将其添加到自动加载库中:另一种方法是:
如果您全局需要它,请将其包含在
中 applications/config/autoload.php
$autoload['libraries'] = array('database', 'session');
假设全局需要database
和session
。
答案 1 :(得分:0)
错误很简单
Message: Call to a member function userdata() on null
Line Number: 23
意思是,在上述文件的第23行中,您正在这些行中进行操作
$this->session->userdata(/* something goes inside here */);
含义$this->session
为空(在这种情况下它没有被实例化或不存在。您可以通过var_dump($this->session)
来确认,之后是exit
,如果它给出空值,则表示找到了麻烦)