Codeigniter (3.1.6) Auth не работает в веб-хостинге - PullRequest
0 голосов
/ 09 июля 2020

Я недавно приобрел веб-хостинг и загрузил свою базу данных, а также свою систему (созданную с помощью codeigniter).

Все хорошо, пока я не войду в систему.

Мой веб-сайт тоже в порядке в качестве целевой страницы моей системы.

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

Вот мое мнение

<form class="form-horizontal form-material" method="post" id="loginform" action="Login/login_auth">
    <div class="form-group m-t-40">
        <div class="col-xs-12">
            <input class="form-control" name="email" value="<?php if(isset($_COOKIE['email'])) { echo $_COOKIE['email']; } ?>" type="text" required placeholder="Username">
        </div>
    </div>
    <div class="form-group">
        <div class="col-xs-12">
            <input class="form-control" name="password" value="<?php if(isset($_COOKIE['password'])) { echo $_COOKIE['password']; } ?>" type="password" required placeholder="Password">
        </div>
    </div>

    <div class="form-check">
     <input type="checkbox" name="remember" class="form-check-input" id="remember-me">
     <label class="form-check-label" for="remember-me">Remember me plz!</label>
    </div>                     
    <div class="form-group text-center m-t-20">
        <div class="col-xs-12">
            <button class="btn btn-info btn-lg btn-login btn-block text-uppercase waves-effect waves-light" type="submit">Log In</button>
        </div>
    </div>
</form>

И мой контроллер как

<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Login extends CI_Controller 
{
    function __construct() {
        parent::__construct();
        $this->load->database();
        $this->load->model('login_model');
        $this->load->model('dashboard_model');

    } 

    public function login_auth()
    {   
         $response = array();
        //Recieving post input of email, password from request
        $email = $this->input->post('email');
        $password = sha1($this->input->post('password'));
        $remember = $this->input->post('remember');
        #Login input validation\
        $this->load->library('form_validation');
        $this->form_validation->set_error_delimiters('<div class="error">', '</div>');
        $this->form_validation->set_rules('email', 'User Email', 'trim|xss_clean|required|min_length[7]');
        $this->form_validation->set_rules('password', 'Password', 'trim|xss_clean|required|min_length[6]');

        if($this->form_validation->run() == FALSE)
        {
           $this->session->set_flashdata('feedback','UserEmail or Password is Invalid');
           redirect(base_url() . 'login', 'refresh');       
        }
        else
        {
            //Validating login
            $login_status = $this->validate_login($email, $password);
            $response['login_status'] = $login_status;
            if ($login_status == 'success') 
            {
                if($remember)
                {
                    setcookie('email',$email,time() + (86400 * 30));
                    setcookie('password',$this->input->post('password'),time() + (86400 * 30));
                    redirect(base_url() . 'login', 'refresh');
                 } 
                 else 
                 {
                     if(isset($_COOKIE['email']))
                     {
                        setcookie('email',' ');
                     }
                     if(isset($_COOKIE['password']))
                     {
                        setcookie('password',' ');
                     }              
                    redirect(base_url() . 'login', 'refresh');
                }

            }
            else
            {
                $this->session->set_flashdata('feedback','UserEmail or Password is Invalid');
                redirect(base_url() . 'login', 'refresh');
            }
        }
    }       
}

Он отлично работает на локальном сервере (Xampp), но когда я разместил его на веб-хостинге, он не работает. Есть мысли?

1 Ответ

0 голосов
/ 09 июля 2020

Вы удалили индекс маршрутов. php в config. php? если true, вы должны создать файл .htaccess.

Пример:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
...