加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 未定义属性:CI :: $session

发布时间:2020-12-13 22:35:25 所属栏目:PHP教程 来源:网络整理
导读:我在登录页面上加载模型时遇到问题.这里的会话有问题.我有一个安全类帮助器,其中$key是其中的一部分.但我认为这与会话有关,因为错误说. 我想我已经设置了num行正确,不确定是否也可能是它的原因. A PHP Error was encounteredSeverity: NoticeMessage: Undefi
我在登录页面上加载模型时遇到问题.这里的会话有问题.我有一个安全类帮助器,其中$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’)加载它.
但您必须设置加密密钥才能在控制器功能中自动加载或加载会话.

详细信息在这里. Working with sessions in codeigniter

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读