实时登录时出现Codeigniter 403错误

时间:2018-06-25 17:37:59

标签: php codeigniter http-status-code-403

我有一个正在开发的实时网站link to site。我正在使用codeigniter进行UI的设置和引导。

背景故事- 该站点具有实时登录名,当您输入正确的用户名/密码时,它将重定向您到管理页面。所有这些工作一直持续到上周末,当时我正在升级某些功能,并且沿线该站点开始引发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');

   }

 }

感谢您阅读,希望您能与我分享一些知识。

编辑:

我想添加该站点托管在litespeed Web服务器上。在底部的403错误中,该页面由litespeed Web服务器托管。我正在阅读有关lite Web服务器的信息,还询问了我的托管服务提供商是否有任何更改。到目前为止,他们还没有回信,所以我还不知道。

0 个答案:

没有答案