У меня есть действующий сайт ссылка на сайт , который я сейчас разрабатываю.Я использую 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 и также спросил моего хостинг-провайдера о любых изменениях.Пока они не ответили, так что я пока не знаю.