[英]Codeigniter (3.1.6) Auth does not work in Web Hosting
我最近购买了一个 web 主机并上传了我的数据库以及我的系统(使用 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>
和我的 Controller 一样
<?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)中运行良好,但是当我将它放在托管的 web 中时它不起作用。 有什么想法吗?
您是否删除了 config.php 中的路由 index.php? 如果为真,则必须创建 .htaccess 文件。
例子:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.