codeigniter 编码器构造函数运行不佳

xpszyzbs  于 2023-02-01  发布在  其他
关注(0)|答案(2)|浏览(95)

我正在尝试创建登录系统。我的登录系统工作100%完美,但问题是它不能正确地重定向会话。当我尝试索引中的函数时,它工作正常,但如果我将函数移动到父构造中,它就不正常了。我认为父构造有问题,因为它也没有加载父构造中的库和模型。所以我必须调用每个函数中的所有内容。检查我尝试的代码:
以下代码工作正常:

<?php 
/**
 * 
 */
class Adminpanel04736 extends CI_Controller
{

    function __construct()
    {
        parent::__construct();
            $this->load->library('session');

    }
    public function index()
    {
                    if ($this->session->userdata('admin_user')=='') 
            {

                redirect(base_url().'adminpanel04736/admin_login'); 
            }
          $this->load->view('admin/dashboard');
    }

    public function list_of_post()
    {
                    if ($this->session->userdata('admin_user')=='') 
            {

                redirect(base_url().'adminpanel04736/admin_login'); 
            }
        $this->load->model('admin_blog_post');
        $result['post_list']=$this->admin_blog_post->post_list();
            $this->load->view('admin/post_list',$result);
    }
    // post delete id is comming from post_list php to delete the post
    public function post_bin($post_delete_id)
    {
                    if ($this->session->userdata('admin_user')=='') 
            {

                redirect(base_url().'adminpanel04736/admin_login'); 
            }
        $this->load->model('admin_blog_post');
        $result=$this->admin_blog_post->trash_post($post_delete_id);
        if ($result) {
        redirect('adminpanel04736/list_of_post');   # code...
        }
    }
    public function my_bin_post()
    {
                    if ($this->session->userdata('admin_user')=='') 
            {

                redirect(base_url().'adminpanel04736/admin_login'); 
            }
        $this->load->model('admin_blog_post');
        $result['re']=$this->admin_blog_post->trash_bin_post();
        $this->load->view('admin/trashed_post',$result);
    }
    // recycleing the post to repost
    public function recycle_post($re)
    {
                    if ($this->session->userdata('admin_user')=='') 
            {

                redirect(base_url().'adminpanel04736/admin_login'); 
            }
        $this->load->model('admin_blog_post');
        $result=$this->admin_blog_post->repost($re);
        if ($result) {
            redirect('adminpanel/my_bin_post');
        }
    }
    public function add_new_post()
    {
                    if ($this->session->userdata('admin_user')=='') 
            {

                redirect(base_url().'adminpanel04736/admin_login'); 
            }
        $this->load->view('admin/add_new_post');
    }
    // id is comming from delete post page to delete the post permenently
    public function destroy_post($id) 
    {
                    if ($this->session->userdata('admin_user')=='') 
            {

                redirect(base_url().'adminpanel04736/admin_login'); 
            }
        $this->load->model('admin_blog_post');
        $result=$this->admin_blog_post->destroy_post_permenently($id);
        if ($result) {
            redirect('adminpanel04736/my_bin_post');
        }
    }
    public function post_content()
    {
                    if ($this->session->userdata('admin_user')=='') 
            {

                redirect(base_url().'adminpanel04736/admin_login'); 
            }
        $this->load->model('admin_blog_post');
        $result=$this->admin_blog_post->adding_the_posts($_POST);
        if ($result) {
            redirect('adminpanel04736/list_of_post');
        }
    }

    public function admin_login()
    {
        $this->load->view('admin/lock1');
    }
    public function loginauthticate()
    {
        $this->load->library('form_validation');
        $this->form_validation->set_rules('admin_password','Password','required');
        if ($this->form_validation->run()) {
            $this->load->model('admin_blog_post');
            $verification=$this->admin_blog_post->login_validation($_POST);
            if ($verification) {
                $username=$_POST['admin_user'];
                $password=$_POST['admin_password'];
                $session_data= array(
                    'admin_user' => $username
                );
                $this->session->set_userdata($session_data);
                redirect(base_url().'adminpanel04736/');
            }
            else
            {
                $this->session->set_flashdata('error','Invalid Password');
                redirect(base_url().'adminpanel04736/admin_login');
            }
        }
        else
        {
            $this->admin_login();
        }
    }
}
 ?>

但是这给了我太多的错误重定向,而且也没有在所有函数中加载库:

<?php 
/**
 * 
 */
class Adminpanel04736 extends CI_Controller
{

    function __construct()
    {
        parent::__construct();
            $this->load->library('session');
                    if ($this->session->userdata('admin_user')=='') 
            {

                redirect(base_url().'adminpanel04736/admin_login'); 
            }
    }
    public function index()
    {
            
          $this->load->view('admin/dashboard');
    }

    public function list_of_post()
    {
            
        $this->load->model('admin_blog_post');
        $result['post_list']=$this->admin_blog_post->post_list();
            $this->load->view('admin/post_list',$result);
    }
    // post delete id is comming from post_list php to delete the post
    public function post_bin($post_delete_id)
    {
            
        $this->load->model('admin_blog_post');
        $result=$this->admin_blog_post->trash_post($post_delete_id);
        if ($result) {
        redirect('adminpanel04736/list_of_post');   # code...
        }
    }
    public function my_bin_post()
    {
            
        $this->load->model('admin_blog_post');
        $result['re']=$this->admin_blog_post->trash_bin_post();
        $this->load->view('admin/trashed_post',$result);
    }
    // recycleing the post to repost
    public function recycle_post($re)
    {
        $this->load->model('admin_blog_post');
        $result=$this->admin_blog_post->repost($re);
        if ($result) {
            redirect('adminpanel/my_bin_post');
        }
    }
    public function add_new_post()
    {
            
        $this->load->view('admin/add_new_post');
    }
    // id is comming from delete post page to delete the post permenently
    public function destroy_post($id) 
    {
            
        $this->load->model('admin_blog_post');
        $result=$this->admin_blog_post->destroy_post_permenently($id);
        if ($result) {
            redirect('adminpanel04736/my_bin_post');
        }
    }
    public function post_content()
    {
        $this->load->model('admin_blog_post');
        $result=$this->admin_blog_post->adding_the_posts($_POST);
        if ($result) {
            redirect('adminpanel04736/list_of_post');
        }
    }

    public function admin_login()
    {
        $this->load->view('admin/lock1');
    }
    public function loginauthticate()
    {
        $this->load->library('form_validation');
        $this->form_validation->set_rules('admin_password','Password','required');
        if ($this->form_validation->run()) {
            $this->load->model('admin_blog_post');
            $verification=$this->admin_blog_post->login_validation($_POST);
            if ($verification) {
                $username=$_POST['admin_user'];
                $password=$_POST['admin_password'];
                $session_data= array(
                    'admin_user' => $username
                );
                $this->session->set_userdata($session_data);
                redirect(base_url().'adminpanel04736/');
            }
            else
            {
                $this->session->set_flashdata('error','Invalid Password');
                redirect(base_url().'adminpanel04736/admin_login');
            }
        }
        else
        {
            $this->admin_login();
        }
    }
}
 ?>
rkkpypqq

rkkpypqq1#

你的admin_login是Adminpanel04736类的方法。但是当任何方法被调用(包括admin_login)而用户还没有登录时,你会再次重定向到admin_login。所以,你会得到无限的重定向,而不是登录过程。
将admin_login移出类或在重定向之前检查方法名,例如

function __construct()
{
    parent::__construct();
    $this->load->library('session');
    if ($this->session->userdata('admin_user')=='' and 
        $this->uri->segment(2) !== 'admin_login'))
        {
            redirect(base_url().'adminpanel04736/admin_login'); 
        }
}
j8yoct9x

j8yoct9x2#

在使用redirect()之前,您应该加载以下内容:$this->load->helper('url');

function __construct()
{
    parent::__construct();
    $this->load->library('session');
    if ($this->session->userdata('admin_user')=='' and 
        $this->uri->segment(2) !== 'admin_login'))
        {
            redirect(base_url().'adminpanel04736/admin_login'); 
        }
}

相关问题