在前面的示例中, 我们学习了一个简单的登录页面, 其中只有一个用户名和会话。
现在, 我们将使用多个数据库来使用它。将为用户提供登录和登录页面。
在此示例中制作了以下页面。
在应用程序/控制器中
- Main.php
- login_view.php
- invalid.php
- data.php
- signin.php
- login_model.php
【CodeIgniter登录页面(带有数据库)】在登录时, 如果用户输入了与数据库匹配的正确凭据, 那么他将被定向到data.php页面。但是, 如果他输入了错误的信息, 则将出现错误的用户名/密码消息。
我们已将CodeIgniter文件夹命名为login_db。我们的表名称是注册。
文章图片
我们需要在我们的login_db CodeIgniter文件夹中进行一些基本设置。
转到autoload.php文件, 然后执行以下设置。
文章图片
在上面的snpashot中, 我们已经加载了库和帮助器。
在database.php文件中, 填写你的用户名和数据库名称。我们的数据库名称是codeigniter。
文章图片
现在, 我们将开始示例。
我们已经在application / controllers文件夹中创建了文件Main.php,
<
?phpdefined('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 = http://www.srcmini.com/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='http://www.srcmini.com/<
?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='http://www.srcmini.com/<
?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='http://www.srcmini.com/<
?php echo base_url()."Main/login";
?>
'>
Login Again<
/a>
<
/body>
<
/html>
在application / models文件夹中, 制作login_model.php文件。
<
?phpclass 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页面。
文章图片
单击登录按钮。
文章图片
单击注销按钮, 你将被定向到主页。
单击登录后, 将显示以下页面。
文章图片
文章图片
文章图片
推荐阅读
- CodeIgniter安全等级
- CodeIgniter中的登录表单(不带MySQL)
- CodeIgniter SELECT数据库记录
- CodeIgniter数据库INSERT记录
- CodeIgniter数据库配置
- CodeIgniter驱动程序
- 在CodeIgniter中传递参数
- CodeIgniter钩子用法
- URL路由详解