我正在创建一个简单的登录站点(项目的第一步),无论我填写用户名和密码表单的信息,我都会收到错误。 这是我的代码:
的login.php
<?php
class login extends CI_Controller
{
public function __construct()
{
parent::__construct();
$this->load->helper('url');
$this->load->helper('form');
}
function login_control()
{
$data['title'] = "Login page";
$this->load->view("loginview", $data);
}
function login_validation()
{
$this->load->library('form_validation');
$this->form_validation->set_rules('username', 'Username', 'required');
$this->form_validation->set_rules('password', 'Password', 'required');
if($this->form_validation->run())
{
//true
$username = $this->input->post('username');
$password = $this->input->post('password');
//model function
$this->load->model('server_model');
if($this->server_model->can_login($username, $password))
{
$session_data = array('username' => $username);
$this->session->set_userdata($session_data);
redirect(base_url() . 'login/enter');
}
else
{
$this->session->set_flashdata('error', 'Invalid Username and Password');
redirect(base_url() . 'login/login_control');
}
}
else
{
//false
$this->login_control();
}
}
function enter()
{
if($this->session->userdata('username') != '')
{
echo 'Welcome - '. $this->session->userdata('username');
echo '<label><a href="'.base_url().'login/logout">Logout</a></label>';
}
else
{
redirect(base_url().'login/login_control');
}
}
function logout()
{
$this->session->unset_userdata('username');
redirect(base_url() . 'login/login_control');
}
}
server_model.php
<?php
class server extends CI_Model
{
function can_login($username, $password)
{
$this->db->where('username', $username);
$this->db->where('password', $password);
$query = $this->db->get('users');
if($query->num_rows()>0)
{
return true;
}
else
{
return false;
}
}
}
loginview.php
<!DOCTYPE html>
<html>
<head>
<title>Login | <?php echo $title; ?></title>
<link rel ="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css"/>
</head>
<body>
<div class = "container">
<br /><br /> <br />
<form method="post" action="<?php echo base_url(); ?>login/login_validation">
<div class="form-group">
<label>Enter Username</label>
<input type="text" name="username" class="form-control" />
<span class="text-danger"><?php echo form_error('username'); ?>
</span>
</div>
<div class="form-group">
<label>Enter Password</label>
<input type="password" name="password" class="form-control" />
<span class="text-danger"><?php echo form_error('password'); ?>
</span>
</div>
<div class="form-group">
<input type="submit" name="insert" value="Login" class="btn btn-info" />
<?php
echo '<label class="text-danger">'.$this->session->flashdata("error").'</label>';
?>
</div>
</form>
</div>
</body>
</html>
我的.htaccess
文件看起来像这样
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
我的 routes.php 就像这样
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
$route['default_controller'] = 'login/login_control';
$route['login/login_control'] = 'loginview';
$route['404_override'] = '';
$route['translate_uri_dashes'] = FALSE;
我认为错误可能是我的.htaccess或路由文件,但我一直试图解决这个问题几个小时,我无法解决问题。 任何帮助表示赞赏
答案 0 :(得分:0)
因为我认为这个问题对我来说真的很愚蠢。我正在使用Sublime Text,所以当我保存文件时,我还需要添加扩展名.php,显然我还没有完成。感谢所有试图解决这个问题的人,尽管那里没有任何真正的问题。