CodeIgniter数据库登录表单


登录页面(带有数据库)

在前面的示例中,我们学习了一个简单的登录页面,其中只有一个用户名和会话。

现在,我们将使用多个数据库来使用它。将为用户提供登录和登录页面。

在此示例中制作了以下页面。

应用程序/控制器中

  • Main.php

在应用程序/视图中

  • login_view.php
  • invalid.php
  • data.php
  • signin.php

应用程序/模型中

  • login_model.php

在第一页中,您可以选择登录登录

在登录时,如果用户输入了与数据库匹配的正确凭据,那么他将被定向到data.php页面。但是,如果他输入了错误的信息,则将出现错误的用户名/密码消息。

我们已将我们的CodeIgniter文件夹命名为login_db。我们的表名是signup

我们需要在login_db CodeIgniter文件夹中进行一些基本设置。

转到autoload.php文件,然后执行以下设置。

在上面的snpashot中,我们已经加载了库和帮助器。

database.php文件中,填写您的用户名和数据库名称。我们的数据库名称是codeigniter。

现在,我们将开始示例。

我们已经在application / controllers文件夹中创建了文件Main.php,

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

class Main extends CI_Controller {

    public function index()
    {
        $this->login();
    }

    public function login()
    {
        $this->load->view('login_view');
    }

    public function signin()
    {
        $this->load->view('signin');
    }

    public function data()
    {
        if ($this->session->userdata('currently_logged_in')) 
        {
            $this->load->view('data');
        } else {
            redirect('Main/invalid');
        }
    }

    public function invalid()
    {
        $this->load->view('invalid');
    }

    public function login_action()
    {
        $this->load->helper('security');
        $this->load->library('form_validation');

        $this->form_validation->set_rules('username', 'Username:', 'required|trim|xss_clean|callback_validation');
        $this->form_validation->set_rules('password', 'Password:', 'required|trim');

        if ($this->form_validation->run()) 
        {
            $data = array(
                'username' => $this->input->post('username'),
                'currently_logged_in' => 1
                );    
                    $this->session->set_userdata($data);
                redirect('Main/data');
        } 
        else {
            $this->load->view('login_view');
        }
    }

    public function signin_validation()
    {
        $this->load->library('form_validation');

        $this->form_validation->set_rules('username', 'Username', 'trim|xss_clean|is_unique[signup.username]');

        $this->form_validation->set_rules('password', 'Password', 'required|trim');

        $this->form_validation->set_rules('cpassword', 'Confirm Password', 'required|trim|matches[password]');

        $this->form_validation->set_message('is_unique', 'username already exists');

    if ($this->form_validation->run())
        {
            echo "Welcome, you are logged in.";
         } 
            else {
            
            $this->load->view('signin');
        }
    }

    public function validation()
    {
        $this->load->model('login_model');

        if ($this->login_model->log_in_correctly())
        {

            return true;
        } else {
            $this->form_validation->set_message('validation', 'Incorrect username/password.');
            return false;
        }
    }

    public function logout()
    {
        $this->session->sess_destroy();
        redirect('Main/login');
    }

}
?>

application / views文件夹中,制作login_view.php文件。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>Login Page</title>
</head>
<body>
    <h1>Login</h1>
    
    <?php

    echo form_open('Main/login_action');

    echo validation_errors();

    echo "<p>Username: ";
    echo form_input('username', $this->input->post('username'));
    echo "</p>";

    echo "<p>Password: ";
    echo form_password('password');
    echo "</p>";

    echo "</p>";
    echo form_submit('login_submit', 'Login');
    echo "</p>";

     echo form_close();

     ?>

     <a href='<?php echo base_url()."index.php/Main/signin"; ?>'>Sign In</a>    
</body>
</html>

application / views文件夹中,创建了data.php文件。

<!DOCTYPE html>
<html>
<head>
    <title></title>
</head>
<body>
    <h1>Welcome, You are successfully logged in.</h1>

    <?php
    echo "<pre>";
    echo print_r($this->session->all_userdata());
    echo "</pre>";
    ?>

    <a href='<?php echo base_url()."index.php/Main/logout"; ?>'>Logout</a>

</body>
</html>

application / views文件夹中,创建了signin.php文件。


<!DOCTYPE html>
<html>
<head>
    <title>Sign Up Page</title>
</head>
<body>
    <h1>Sign In</h1>

    <?php

    echo form_open('Main/signin_validation');

    echo validation_errors();

    echo "<p>Username:";
    echo form_input('email');
    echo "</p>";

    echo "<p>Password:";
    echo form_password('password');
    echo "</p>";

    echo "<p>Confirm Password:";
    echo form_password('cpassword');
    echo "</p>";

    echo "<p>";
    echo form_submit('signin_submit', 'Sign In');
    echo "</p>";

    echo form_close();

    ?>

</body>
</html>

application / views文件夹中,创建了invalid.php文件。


<!DOCTYPE html>
<html>
<head>
    <title>Invalid Page</title>
</head>
<body>
    <h1>Sorry, You don't have access to this page.</h1>

    <a href='<?php echo base_url()."Main/login"; ?>'>Login Again</a>

</body>
</html>

application / models文件夹中,制作login_model.php文件。

<?php

class Login_model extends CI_Model {

    public function log_in_correctly() {

        $this->db->where('username', $this->input->post('username'));
        $this->db->where('password', $this->input->post('password'));
        $query = $this->db->get('signup');

        if ($query->num_rows() == 1)
        {
            return true;
        } else {
            return false;
        }

    }

    
}
?>

输入URL时,http://localhost/login_db/index.php/Main/

将出现以下页面。

输入要登录的信息。

输入信息后,单击“登录”按钮。我们输入了错误的信息,因此它将显示错误消息,如下所示。

从数据库输入信息后,我们将定向到data.php页面。

单击登录按钮。

单击注销按钮,您将被定向到主页。

单击登录后,将显示以下页面。



Made with ❤️ in Chengdu. Copyright reserved 2019-2023.

蜀ICP备20006366号-1