Ошибка Codeigniter 403 при реальном входе в систему - PullRequest
0 голосов
/ 25 июня 2018

У меня есть действующий сайт ссылка на сайт , который я сейчас разрабатываю.Я использую codeigniter для установки и начальной загрузки для пользовательского интерфейса.

Предыстория - сайт имеет действующий логин и при вводе правильного имени пользователя / пароля он перенаправит вас на страницу администратора.Все это работало до прошлых выходных, когда я обновлял некоторые функции, и где-то вдоль линии сайт начал выдавать 403 ошибки.После того, как вы вошли в систему, вы получаете ошибку 403, и после этого вы не можете посетить ни одну из страниц в домене, потому что все они выдают ошибку 403.

Я просматривал почти каждую статью здесь о codeigniterи 403 ошибки, и я подумал, что причина в том, что я пропустил точку с запятой в атрибутах href или src.Как это <a href="<?php echo base_url()."controller/function".$bla."" ?>", но это ничего не изменило, когда я изменил его (не уверен, что это что-то сделал или нет).Я также посмотрел онлайн, но не нашел много.

Я не знаю, в чем проблема.Я четыре раза проверил коды, которые как-то связаны с логином, но ни я, ни phpcodechecker не нашли ничего плохого в моем коде, и обычно проверка кода решает большинство проблем, которые я пропускаю.

Поскольку при входе в систему возникает проблема, вот коды контроллеров, представлений и моделей, используемые для входа в систему и далее.

Представление входа в систему

<br>

<div class="row">

<div class="col-md-4 offset-4">

<div class="login-form">
        <?php echo validation_errors();?>

        <?php echo form_open('admin/magacinLogin');?>


        <h3 class="text-center">Login</h3>       

        <div class="form-group">

            <input name="username" type="text" class="form-control" placeholder="Username" required="required">

        </div>

        <div class="form-group">

            <input name="password" type="password" class="form-control" placeholder="Password" required="required">

        </div>

        <div class="form-group">

            <button type="submit" class="btn btn-primary btn-block">Log in</button>

        </div>

        <div class="clearfix">

            <label class="pull-left checkbox-inline"><input type="checkbox" name="rem" id="rem"> Remember me</label>

        </div>        

        <?php echo form_close(); ?>

Логин контроллера

public function magacinLogin()

    {

        $this->form_validation->set_rules('username', 'Username', 'required');

        $this->form_validation->set_rules('password', 'Password', 'required|callback_check_db'); 



        if ($this->form_validation->run() == TRUE) 

        {   

            $this->session->set_userdata('logged_in', TRUE);

            $this->session->set_userdata('username', $username);

            redirect('/admin_page');

        }

        else

        {

            $this->load->view('header_en');
            $this->load->view('logo');
            $this->load->view('navbar');
            $this->load->view('mlogin');
            $this->load->view('footer');

        }

    }



    function check_db()

    {

        extract($_POST);

        $try_login = $this->admin_model->login($username, $password);



        if(!$try_login)

        {

            $this->form_validation->set_message('check_db', 'Wrong username or password');

            return FALSE;

        }

        else

        {

            $this->session->set_userdata('logged_in', TRUE);

            $this->session->set_userdata('username', $username);

            redirect('/admin_page');
        }



    }

Модель для проверки входа в систему

function login($username, $password)

        {

            $sql = "SELECT * FROM xxxx WHERE xxxx ='".$username."'";

            $query = $this->db->query($sql);            

            $hash = $this->db->query($sql)->row()->xxxx;





            if ($query->num_rows() == 1 && password_verify($password, $hash)) {

                return $query->result_array();

            }

            else

            {

                return false;

            }

        }

После входа в систему другой контроллер

function index()

 {

   if($this->session->userdata('logged_in'))

   {

     $session_data = $this->session->userdata('logged_in');

     $data['username'] = $session_data['username'];


     $this->load->view('header_magacin');

     $this->load->view('test');

     $this->load->view('footer_magacin');

   }

   else

   {

     //If no session, redirect to login page

     redirect('/login', 'refresh');

   }

 }

Спасибо за чтение, и я надеюсь, что вы можете поделиться со мной некоторыми знаниями.

РЕДАКТИРОВАТЬ:

Я хочу добавить, что сайт размещен на веб-сервере с низкой скоростью.На 403 ошибка внизу говорит, что эта страница размещена на веб-сервере litespeed.Я читал о веб-сервере lite и также спросил моего хостинг-провайдера о любых изменениях.Пока они не ответили, так что я пока не знаю.

...