【发布时间】:2017-02-11 20:05:32
【问题描述】:
在我刷新网站上的任何页面后随机时间登录后,有时它可以正常工作,但有时它会显示错误,例如尝试在模型和控制器文件的不同行上获取属性。
例如,当我刷新页面错误显示在名为 user_model 的模型和名为 User.php 的控制器的以下函数中:
用户模型.php:
public function get_client_id($email)
{
$this->db->select('id');
$this->db->where('email', $email);
$query = $this->db->get('crm_accounts');
$result = $query->row();
return $result->id; //line 135
}
Users.php:
$email = $_SESSION['email'];
$id = $this->user_model->get_client_id($email); //line 145
登录后设置会话值:
$email = $this->input->post("email");
$password = $this->input->post("pass");
$result = $this->user_model->login($email, $password);
if ($result == TRUE)
{
$this->session->set_userdata('email',$email);
$this->session->set_userdata('logged_in',TRUE);
$data = $this->user_model->get_username($email);
$this->session->set_userdata('data', $data);
redirect('admin_view');
}
else
{
$this->load->view('all_field');
}
注销后删除会话的代码:
$logged_in = $this->session->userdata('logged_in');
$log = $this->session->userdata('email');
if($logged_in || (!empty($log)))
{
$array_item = array('email', 'logged_in');
$this->session->unset_userdata($array_item);
redirect('');
}
else
{
$this->load->view('error_page');
}
在这里,我遇到了错误 尝试在 user_model.php 的第 135 行获取非对象的属性,并在回溯中发现第 145 行的 Users.php 错误
我注意到,当我在模型中遇到此类错误时,我会使用存储会话数据的会话变量 $email 以该特定方法获取数据。但是我已经在控制器中设置了这样的条件:
public function index()
{
if(!empty($_SESSION['email']))
{
$email = $_SESSION['email'];
$data = $this->user_model->get_username($email);
$this->session->set_userdata('data',$data);
redirect('clientview');
//echo "You are already logged in";
}
else
{
$this->load->view('signup');
}
}
所以,如果会话变量 $email 的值没有设置,那么它应该在注册页面上。
所以,我没有得到真正的问题。因为有时它工作得很好,有时却不行。一旦遇到此类错误,我必须清除我的历史记录,然后我必须重新登录。
【问题讨论】:
标签: php session session-variables codeigniter-3