在前面的示例中, 我们学习了一个简单的登录页面, 其中只有一个用户名和会话。
现在, 我们将使用多个数据库来使用它。将为用户提供登录和登录页面。
在此示例中制作了以下页面。
在应用程序/控制器中
- Main.php
在应用程序/视图中
- login_view.php
- invalid.php
- data.php
- signin.php
在应用程序/模型中
- login_model.php
在第一页中, 你可以选择登录和登录。
在登录时, 如果用户输入了与数据库匹配的正确凭据, 那么他将被定向到data.php页面。但是, 如果他输入了错误的信息, 则将出现错误的用户名/密码消息。
我们已将CodeIgniter文件夹命名为login_db。我们的表名称是注册。
我们需要在我们的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页面。
单击登录按钮。
单击注销按钮, 你将被定向到主页。
单击登录后, 将显示以下页面。
评论前必须登录!
注册