[英]codeigniter login redirect too many to home controller
i have one problem with my login and the views, i want once the user is logged and exits the session then redirect me to my home , but the user slip the url to root project or login url then it should be stay on home ., my code looks like this 我的登录和视图有一个问题,我希望一旦用户登录并退出会话然后将我重定向到我的家,但是用户将URL滑到root项目或登录URL然后它应该留在家里。我的代码看起来像这样
MY_Controller MY_Controller
protected function isLogged(){
if (!$this->session->userdata('log'))
redirect('login');
}
login 登录
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Login extends MY_Controller {
public function __construct(){
parent::__construct();
}
public function index(){
$data['module'] = 'Login';
$this->load->view('header',$data);
$this->load->view('login');
}
public function getAccess(){
$username = $this->input->post('username', TRUE);
$password = $this->input->post('password', TRUE);
$result = $this->user->login($username,$password);
if (!empty($this->input->post('username')) && !empty($this->input->post('password'))) {
if (!$result) {
$this->json(array('error' => 'invalid username or password'));
}else{
$data_session = array(
'id' => $result['id'],
'first_name' => $result['first_name'],
'last_name' => $result['last_name'],
'type' => $result['profile_id'],
'logged_in' => TRUE
);
$this->session->set_userdata('log',$data_session);
}
} else {
$this->json(array('empty' => 'You did not fill out the required fields.'));
}
}
public function logout(){
$this->session->sess_destroy();
redirect('login','refresh');
}
}
home controller 家庭控制器
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Home extends MY_Controller {
public function __construct(){
parent::__construct();
$this->isLogged();
}
public function index(){
$data = $this->session->userdata('log');
$data['module'] = "Home";
$data['fields'] = $this->getModules();
$this->load->view('header',$data);
$this->load->view('index');
$this->load->view('home');
$this->load->view('footer');
}
}
/* End of file Welcome.php */
/* Location: ./application/controllers/Welcome.php */
You can try 你可以试试
$this->login();
or 要么
redirect(base_url());
I have same issue last time I solved that with making islogged() function in helper file. 我上次在helper文件中使用islogged()函数解决了这个问题。
You can look this code might helpful 您可以查看此代码可能有用
This my login controller 这是我的登录控制器
defined('BASEPATH') OR exit('No direct script access allowed');
class Login extends CI_Controller {
function __construct()
{
parent::__construct();
$this->load->helper(array('url','form','file'));
$this->load->model(array('admin_model'));
//print_r($_SESSION);
// print_r($data['all_cats']);die();
}
public function index()
{
if($this->input->post('submit')!='')
{
$email = $this->input->post('email');
$pwd = $this->input->post('password');
$login = $this->admin_model->login($email,$pwd);
if(!empty($login))
{
redirect('Welcome/dashboard');
}
else
{
$this->session->set_flashdata('error', 'Incorrect Login Details');
$this->load->view('login');
}
}
else
{
$auth = checkAdminLogin();
if( $auth == 1)
{
redirect('Welcome/dashboard');
}
else
{
$this->load->view('login');
}
}
}
}
And that's my Welcome controller 那是我的欢迎控制器
defined('BASEPATH') OR exit('No direct script access allowed');
class Welcome extends CI_Controller {
function __construct()
{
parent::__construct();
$this->load->helper(array('url','form','file'));
$this->load->model(array('admin_model'));
$data['dbname']=$this->admin_model->get_db_name();
$data['all_cats']=$this->admin_model->get_categories();
$data['websites']=$this->admin_model->website_type();
$data['sub_cats']=$this->admin_model->get_sub_cats();
$admin_id=$this->session->userdata('adminId');
if($admin_id == '')
{
redirect(base_url());
}
$this->load->vars($data);
//print_r($_SESSION);
// print_r($data['all_cats']);die();
}
// Admin Login Page
// End Function
// Redirect to Admin DashBoard
public function dashboard()
{
$auth = checkAdminLogin();
if( $auth == 1)
{
$data = array();
$this->load->view('index',$data);
}
else
{
redirect('Welcome');
}
}
// End Function
// Logout Function
public function logout()
{
$this->session->unset_userdata('adminId');
$this->session->sess_destroy();
redirect('Login');
}
// End Function
// Manage Blog Categories
public function blog_categories($reload)
{
$data['list']=$this->admin_model->blog_categories();
if(isset($reload) && $reload !='')
{
$this->load->view('datatable',$data);
}
else{
//print_r($data['list']);die();
$this->load->view('users-list',$data);
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.