[英]Undefined property: CI::$session
我在登錄頁面上加載模型時遇到問題。 這里的會話有問題。 我有一個安全類幫助器,其中$ key是其中的一部分。 但我認為這與會話有關,因為錯誤說。
我想我已經設置了num行正確,不確定是否也可能是它的原因。
A PHP Error was encountered
Severity: Notice
Message: Undefined property: CI::$session
Filename: core/Model.php
Line Number: 51
模型
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Users_model extends CI_Model {
private $user_id;
private $username;
private $permission = array();
public function __construct() {
if (isset($this->session->userdata['user_id'])) {
$user_query = $this->db->query("SELECT * FROM " . $this->input->post('dbprefix') . "user WHERE user_id = '" . (int)$this->session->userdata['user_id'] . "' AND status = '1'");
if ($user_query->num_rows) {
$this->user_id = $user_query->row['user_id'];
$this->username = $user_query->row['username'];
$this->db->query("UPDATE " . $this->input->post('dbprefix') . "user SET ip = '" . $this->db->escape($this->input->server['REMOTE_ADDR']) . "' WHERE user_id = '" . (int)$this->session->userdata['user_id'] . "'");
$user_group_query = $this->db->query("SELECT permission FROM " . $this->input->post('dbprefix'). "user_group WHERE user_group_id = '" . (int)$user_query->row['user_group_id'] . "'");
$permissions = unserialize($user_group_query->row['permission']);
if (is_array($permissions)) {
foreach ($permissions as $key => $value) {
$this->permission[$key] = $value;
}
}
} else {
$this->logout();
}
}
}
public function login($username, $password) {
$user_query = $this->db->query("SELECT * FROM " . $this->input->post('dbprefix') . "user WHERE username = '" . $this->db->escape($username) . "' AND (password = SHA1(CONCAT(salt, SHA1(CONCAT(salt, SHA1('" . $this->db->escape($password) . "'))))) OR password = '" . $this->db->escape(md5($password)) . "') AND status = '1'");
if ($user_query->num_rows) {
$this->session->userdata['user_id'] = $user_query->row['user_id'];
$this->user_id = $user_query->row['user_id'];
$this->username = $user_query->row['username'];
$user_group_query = $this->db->query("SELECT permission FROM " . $this->input->post('dbprefix') . "user_group WHERE user_group_id = '" . (int)$user_query->row['user_group_id'] . "'");
$permissions = unserialize($user_group_query->row['permission']);
if (is_array($permissions)) {
foreach ($permissions as $key => $value) {
$this->permission[$key] = $value;
}
}
return true;
} else {
return false;
}
}
如果您在代碼中使用會話,請確保通過設置加密密鑰在config.php文件中自動加載。 如果你不自動加載它,那么你可以使用$this->load->library('session')
加載它。 但您必須設置加密密鑰才能在控制器功能中自動加載或加載會話。
詳細信息在這里。 在codeigniter中使用會話
加上已啟動的會話,您需要在構造函數中檢查父項或在構造函數中編寫此代碼: **parent::__construct();**
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.