Codeigniter视图未加载

时间:2017-08-21 18:46:23

标签: php codeigniter

我正在创建一个简单的登录站点(项目的第一步),无论我填写用户名和密码表单的信息,我都会收到错误。 这是我的代码:

的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或路由文件,但我一直试图解决这个问题几个小时,我无法解决问题。 任何帮助表示赞赏

1 个答案:

答案 0 :(得分:0)

因为我认为这个问题对我来说真的很愚蠢。我正在使用Sublime Text,所以当我保存文件时,我还需要添加扩展名.php,显然我还没有完成。感谢所有试图解决这个问题的人,尽管那里没有任何真正的问题。