mysql、PDO、php和bootstrapt制作一个登陆界面外加后台处理
header("Content-Type:text/html; charset=UTF-8");
?>
.myDialog{
width:35%;
margin:80px auto;
}
h3{
font-weight:bold;
text-align:center;
}
.modal-body{
font-size:15px;
}
登录界面怎能可以没有后台操作,在这里我们将后台操作的文件名命名为doLogin.php,只比登陆界面加了一个do,便于理解。
header("Content-Type:text/html; charset=UTF-");
@$login=$_REQUEST['login'];
@$password = $_REQUEST['password'];
if(empty($login) || empty($password)){
@$msg = "表单填写不完整, 请检查后重新填写";
include "login.php";
die;
}
然后我们所要做的就是建立一个数据库,数据库我就使用的是mysql的,由于登陆界面我们需要插入的数据不多,我目前就只插入登录名和密码的吧,只是做一个登录验证的功能就行了。这个里我用的文件名是restaurant.php,下面是我的代码
drop database if exists restaurant;
create database restaurant charset=UTF8;
use restaurant;
create table user(
id int primary key auto_increment,
login varchar(20) not null unique,
password varchar(20) not null
);
insert into user(login, password) values
('a', 'a');
select * from user;
然后的话我们还应该在doLogin中实现数据库的验证工作,验证数据库非常简单,只需要4行代码,在验证数据库完毕后我们还需要对登录名验证在数据库中是否存在,当条件为真的时候我们再判断密码是否正确,这样我们的验证工作才能说基本完毕。
$pdo = new PDO('mysql:dbname=restaurant; charset=UTF8', 'root');
$stat = $pdo->prepare('select login, password from user where login = :login');
$stat->execute(array('login'=>$login));
@$users = $stat->fetch(PDO::FETCH_NAMED);
if(empty($users)){
@$msg = "登录名不存在";
include "login.php";
die;
}
if($password != $users['password']){
@$msg = "密码输出错误";
include "login.php";
die;
}
header('Location:main.php');
在这里我还要重新说一下,当用户输入的信息和数据库中保存的信息完全符合的时候我们才能说验证通过,然后跳转到mian.php这个页面。但是这个时候问题就出现了,如客户进入mian.php这个页面后觉得很无聊就退出了,但是以客户安全角度着想的话肯定是说登录过后才能访问这个页面,不能从所谓的历史记录里面找到这个用户的主页直接进入。这里我想牵涉一个客户端与浏览器交互方面的知识,比如说我们在工商银行主页查看个人信息的时候就在跟浏览器进行交互,你账户的余额都是从服务器临时传送过来的,但是当你退出个人主页你再次从历史记录进入的时候就不行了,你必须重新登录,不然这就叫做非法访问。为什么呢,因为在你登录名密码验证成功之后到登录界面之前的这段时间浏览器会存储一个临时的session值,当你退出界面的时候浏览器的session的值就会注销掉,这时这个session值就会为空,这样就算是你本人想登录之前你的个人页面也不行。你想一下就会知道你非法进入的时候session值为空,为空时自然就不能进入个人页面,你想不为空的唯一途径就是老老实实的进行登录,不然我就只能说呵呵了。说了这么久其实我的目的就是实现这个seesion的功能,我们只需在跳转到mian.php这个页面之前写上两句代码就行,代码如下:
session_start();
$_SESSION['userID'] = $user['id'];
然后,我们还有一个步骤,就是在mian.php这个页面的开始出判断session值是否为空,为空则不能访问
session_start();
@$userID = $_SESSION['userID'];
if(empty($userID)){
$title = '严重警告';
$message = '你还未登陆,请登录后使用';
$jumpUrl = 'login.php';
include 'lib/message.php';
die;
}
最后还有一点我们需要注意,当session为空的时候我们总不能直接跳转到登录页面吧!应该给一个提示消息,既然是提示消息我想还是应该来一个高端的Bootstrapt界面,比较简洁美观,虽然说代码量多了一点点。
header("Content-Type:text/html; charset=UTF-8");
?>
.myDialog{
margin:80px auto;
width:400px;
}
ok,这就是我所说的登录界面,其实我也想说,尼玛不就是一个登录界面嘛,怎么有这么多代码,而且感觉没两句有用的。不过话说回来,前段就是这样,在水平相同的情况下,代码量与界面的美观成正比。
以上就介绍了mysql、PDO、php和bootstrapt制作一个登陆界面外加后台处理,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。