个性化阅读
专注于IT技术分析

CodeIgniter登录页面(带有数据库)

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

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

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

在应用程序/控制器中

  • Main.php

在应用程序/视图中

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

在应用程序/模型中

  • login_model.php

在第一页中, 你可以选择登录和登录。

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

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

登录页面1

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

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

登录页面2

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

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

登录页面3

现在, 我们将开始示例。

我们已经在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/

将出现以下页面。

登录页面4

输入要登录的信息。

登录页面5

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

登录页面6

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

登录页面7

单击登录按钮。

登录页面8

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

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

登录页面9
登录页面10
登录页面11
赞(0)
未经允许不得转载:srcmini » CodeIgniter登录页面(带有数据库)

评论 抢沙发

评论前必须登录!