Php codeigniter未在另一个控制器中检索会话
我完全被困在这里了,我创建了一个控制器登录名,它可以获取、设置规则和DB身份验证,并在代码结束时设置会话。 此外,我还有另一个控制器仪表板,它显示仪表板,还必须使用会话来查看是否设置了会话,如果真正的用户可以使用控制器,则重定向到登录页面。就这样 但我无法在仪表板中获取会话,我应该在这里做什么Php codeigniter未在另一个控制器中检索会话,php,codeigniter,session,Php,Codeigniter,Session,我完全被困在这里了,我创建了一个控制器登录名,它可以获取、设置规则和DB身份验证,并在代码结束时设置会话。 此外,我还有另一个控制器仪表板,它显示仪表板,还必须使用会话来查看是否设置了会话,如果真正的用户可以使用控制器,则重定向到登录页面。就这样 但我无法在仪表板中获取会话,我应该在这里做什么 <?php defined('BASEPATH') OR exit('No direct script access allowed'); class Login extends CI_Contr
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Login extends CI_Controller
{
/**
* Login constructor.
*/
public function __construct()
{
parent::__construct();
//Load Form helper
$this->load->helper('form');
//Load form validation library
$this->load->library('form_validation');
}
/**
*Display Login page
*/
public function index()
{
$title['title'] = 'Admin login';
$this->load->view('login', $title);
}
/**
*
* Set rules for authentication
*
* @return bool
*/
public function rules()
{
$rules = array(
array(
'field' => 'username',
'label' => 'Username',
'rules' => 'trim|required|xss_clean'
),
array(
'field' => 'password',
'label' => 'Password',
'rules' => 'trim|required|xss_clean'
),
array(
'field' => 'remember',
'label' => 'Remember',
'rules' => 'trim|int|xss_clean'
)
);
$this->form_validation->set_rules($rules);
if ($this->form_validation->run() != FALSE) {
$this->authentication();
} else {
$title['title'] = 'Admin login';
$this->load->view('login', $title);
}
}
/**
* Check if user is exist
*/
public function authentication()
{
$data = array(
'username' => $this->input->post('username', true),
'password' => $this->input->post('password', true)
);
$this->load->model('userData');
if ($this->userData->getUserData($data) == FALSE) {
$title['title'] = 'Admin login';
$this->load->view('login', $title);
} else {
$this->set_session($data);
redirect('dashboard/index');
}
}
/**
* @param $data username|password
*/
public function set_session($data)
{
$session_data = array(
'username' => $data['username'],
'login' => true
);
$this->session->set_userdata('auth', $session_data);
}
}
您的做法是错误的。您无法访问函数外部的$\u post
值。您也不需要authentication()
函数
当您调用此函数时,if($this->form\u validation->run()!=FALSE)
如果通过,则将``authentication()`函数代码添加到此处。然后可以设置会话
代码示例
$this->form_validation->set_rules($rules);
if ($this->form_validation->run() != FALSE) {
$data = array(
'username' => $this->input->post('username', true),
'password' => $this->input->post('password', true)
);
$this->load->model('userData');
if ($this->userData->getUserData($data) == FALSE) { # Uncler this point
$title['title'] = 'Admin login';
$this->load->view('login', $title);
} else {
$this->set_session($data);
redirect('dashboard/index');
}
} else {
$title['title'] = 'Admin login';
$this->load->view('login', $title);
}
你的做法是错误的。您无法访问函数外部的$\u post
值。您也不需要authentication()
函数
当您调用此函数时,if($this->form\u validation->run()!=FALSE)
如果通过,则将``authentication()`函数代码添加到此处。然后可以设置会话
代码示例
$this->form_validation->set_rules($rules);
if ($this->form_validation->run() != FALSE) {
$data = array(
'username' => $this->input->post('username', true),
'password' => $this->input->post('password', true)
);
$this->load->model('userData');
if ($this->userData->getUserData($data) == FALSE) { # Uncler this point
$title['title'] = 'Admin login';
$this->load->view('login', $title);
} else {
$this->set_session($data);
redirect('dashboard/index');
}
} else {
$title['title'] = 'Admin login';
$this->load->view('login', $title);
}
if($this->userData->getUserData($data)==FALSE)
这是从数据库中选择数据的模型类的结果。但这里还有一点我可以用这个方法在登录控制器中回显会话,但为什么它在仪表板中不起作用?@nima按我的方式去做问题在于这里if($this->userData->getUserData($data)==FALSE)
im sureif($this->userData->getUserData($data)==FALSE)
它是从数据库中选择数据的模型类的结果。但这里还有一点我可以用这个方法在登录控制器中回显会话,但为什么它在仪表板中不起作用?@nima do it我的方法问题在于这里if($this->userData->getUserData($data)==FALSE)
我确定