Функция конструирования Codeingiter не работает - PullRequest
0 голосов
/ 01 февраля 2019

Я пытаюсь создать систему входа в систему. Моя система входа в систему работает на 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();
        }
    }
}
 ?>

Ответы [ 2 ]

0 голосов
/ 01 февраля 2019

Перед использованием 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'); 
        }
}
0 голосов
/ 01 февраля 2019

Ваш 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'); 
        }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...