Php 会话赢得的CodeIgniter用户数据';行不通
我正在尝试创建一个博客网站,我有一个名为ci_test的数据库,它有两个表用户和一篇文章。我有一个无法修复的会话问题。我设定-Php 会话赢得的CodeIgniter用户数据';行不通,php,codeigniter,session,Php,Codeigniter,Session,我正在尝试创建一个博客网站,我有一个名为ci_test的数据库,它有两个表用户和一篇文章。我有一个无法修复的会话问题。我设定- $config['encryption_key'] = '1234'; 另外,设置属性 $autoload['libraries'] = array('database','session'); 但它给出了一个错误: 严重性:通知 消息:未定义的属性:Admin::$session 文件名:controllers/admin.php 电话号码:18 我的登录码是:
$config['encryption_key'] = '1234';
另外,设置属性
$autoload['libraries'] = array('database','session');
但它给出了一个错误:
严重性:通知
消息:未定义的属性:Admin::$session
文件名:controllers/admin.php
电话号码:18
我的登录码是:
<?php
class Login extends MY_Controller{
public function index()
{
$this->load->helper('form');
$this->load->view('public/admin_login');
}
public function admin_login()
{
$this->load->library('form_validation');
$this->form_validation->set_rules('username','user name','required|alpha|trim');
$this->form_validation->set_rules('password','password','required');
$this->form_validation->set_error_delimiters('<p class="text-danger">','</p>');
if($this->form_validation->run())
{
$username = $this->input->post('username');
$password = $this->input->post('password');
$this->load->model('loginmodel');
$login_id = $this->loginmodel->login_valid($username, $password);
if($login_id)
{
//$this->load->library('session');
$this->session->set_userdata('user_id', $login_id);
redirect('admin/dashboard');
}
else{
echo 'password dont';
}
}
else
{
$this->load->view('public/admin_login');
}
}
}
管理员控制器:
<?php
class Admin extends CI_Controller{
public function dashboard()
{
$this->load->model('articlesmodel','article');
$articles = $this->article->articles_list();
$this->load->view('admin/dashboard',['articles'=> $articles]);
}
public function __construct()
{
if(! $this->session->userdata('user_id'))
{
redirect('login');
}
}
}
1.
编辑
删除
未找到记录
确保您的文件名是controllers/Admin.php
而不是controllers/Admin.php
第一个字母总是大写,只有相同的名称适用于类
而且您的construct()应该始终低于类,并且您缺少父项::\uu construct()
访问数据
$id = $this->session->userdata('user_id');
$id['id'];
或尝试
确保您在使用Ci3中的文件时已设置路径
$config['sess_cookie_name'] = 'ci_sessions';
$config['sess_expiration'] = 7200;
$config['sess_save_path'] = FCPATH . 'application/cache/session/';
Codeigniter加密密钥
更新
如果登录正确,则单击控制器上的
$login = $this->some_model->login($this->input->post('username'), $this->input->post('password'));
if ($login) {
$this->session->set_userdata(array('user_id' => $login->column_name));
redirect('successcontroller');
} else {
// Error
}
确保您的文件名是
controllers/Admin.php
而不是controllers/Admin.php
第一个字母总是大写,仅类是相同的
而且您的construct()应该始终低于类,并且您缺少父项::\uu construct()
访问数据
$id = $this->session->userdata('user_id');
$id['id'];
或尝试
确保您在使用Ci3中的文件时已设置路径
$config['sess_cookie_name'] = 'ci_sessions';
$config['sess_expiration'] = 7200;
$config['sess_save_path'] = FCPATH . 'application/cache/session/';
Codeigniter加密密钥
更新
如果登录正确,则单击控制器上的
$login = $this->some_model->login($this->input->post('username'), $this->input->post('password'));
if ($login) {
$this->session->set_userdata(array('user_id' => $login->column_name));
redirect('successcontroller');
} else {
// Error
}
这是行不通的,因为CodeIgniter需要加密密钥。请看这里的文档
试试这个
$key = $this->encryption->create_key(16);
然后使用下面的键
$config['encryption_key'] = 'YOUR KEY';
或者,更好的是,这里有两个网站将为您生成CodeIgniter加密密钥
这是行不通的,因为CodeIgniter需要加密密钥。请看这里的文档
试试这个
$key = $this->encryption->create_key(16);
然后使用下面的键
$config['encryption_key'] = 'YOUR KEY';
或者,更好的是,这里有两个网站将为您生成CodeIgniter加密密钥
添加了我的答案希望有帮助。添加了我的答案希望有帮助。认为是更多的原因导致了他的问题。认为是更多的原因导致了他的问题。错误已被移动,但仍然存在问题。主席先生,会话在用户id中没有值。生成一个空数组,因此在视图中找不到任何记录。如何解决它。您是否像我的回答中的第二个示例那样设置了会话值
$this->session->set_userdata(数组('user_id'=>$login_id))代码>并确保您在回答顶部正确命名了文件是的,先生,我照您说的做,但它不起作用。登录检查也不起作用,因为会话没有值,请在尝试获取结果$this->session->set_userdata(数组('user_id'=>$login_id->您的_列名称)时尝试类似的操作代码>我已经更新了答案。但是需要查看您的登录模型。\u有效错误已移动,但仍然存在问题,先生,会话在用户id中没有值,因此无法生成空数组,因此在视图中找不到记录。如何解决它。您是否像我的回答中的第二个示例那样设置了会话值$this->session->set_userdata(数组('user_id'=>$login_id))代码>并确保您在回答顶部正确命名了文件是的,先生,我照您说的做,但它不起作用。登录检查也不起作用,因为会话没有值,请在尝试获取结果$this->session->set_userdata(数组('user_id'=>$login_id->您的_列名称)时尝试类似的操作代码>我已经更新了答案。但是需要查看您的登录模型。\u有效
$login = $this->some_model->login($this->input->post('username'), $this->input->post('password'));
if ($login) {
$this->session->set_userdata(array('user_id' => $login->column_name));
redirect('successcontroller');
} else {
// Error
}
$config['encryption_key'] = '1234';
$key = $this->encryption->create_key(16);
$config['encryption_key'] = 'YOUR KEY';