PHP简单的登录验证

使用SESSION验证用户登录状况

作者 _Nomo 日期 2017-02-17
PHP
PHP简单的登录验证

做项目时遇到需要验证用户的登录,想想还是使用PHP比较简单快捷,主要使用 SESSION 属性记录,通过与MySQL数据库交互来判断。

index.html 登录页面

1
2
3
4
5
6
7
8
<form class="form-signin" method="post" action="<?php $_PHP_SELF ?>">
<input type="text" class="form-control" name="name" id="name" placeholder="用户名" autofocus>
<input type="password" class="form-control" name="pwd" id="pwd" placeholder="密码">
<button class="btn btn-lg btn-login btn-block" id="login" name="login" type="submit">
<i class="fa fa-check"></i>
</button>
</form>

PHP 处理代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
<?php
session_start(); //启用 session 记录
header('conten-type:text/html;charset=utf-8'); //UTF-8的请求头
//注销登录的操作
if($_GET['action'] == "logout"){
unset($_SESSION['admin_name']);
echo "<meta http-equiv='Content-Type' content='text/html; charset=utf-8' />";
echo "<script type='text/javascript'>alert('注销成功!');</script>";
echo "<script type='text/javascript'>window.location.href='index.php'</script>";
exit;
}
//判断有登陆表的内容
if (isset($_POST['login'])) {
//连接数据库的部分代码
$dbhost = ''; //mysql服务器主机地址
$dbuser = ''; //mysql用户名
$dbpass = ''; //mysql用户名密码
$conn = mysql_connect($dbhost, $dbuser, $dbpass);
if(! $conn )
{
die('连接失败: ' . mysql_error());
}
mysql_query("set names utf8"); //格式化UTF-8的内容
mysql_select_db( 'table-db',$conn); //连接数据库
$admin_name = $_POST['name']; //提取页面中的账号和密码
$admin_pwd = $_POST['pwd'];
if(preg_match('/^[a-zA-Z][a-zA-Z0-9]{4,12}$/',$admin_name)){ //正则表达式 验证用户名格式,防止SQL注入
$check_query = mysql_query("select * from web_admin where admin_name='$admin_name' and admin_pwd='$admin_pwd'
limit 1");
if($result = mysql_fetch_array($check_query)){
//登录成功
$_SESSION['admin_name'] = $admin_name; //记录用户名的值
echo "<script type='text/javascript'>alert('登陆成功!');</script>";
echo "<script type='text/javascript'>window.location.href='main.php'</script>";
} else {
echo "<script type='text/javascript'>alert('登陆失败,请重试!');</script>";
}
}else{
echo "<script type='text/javascript'>alert('请输入合法用户名!');</script>";
}
}
?>

其他页面验证session

1
2
3
4
5
6
7
8
9
10
11
12
<?php
session_start();
header('conten-type:text/html;charset=utf-8');
//检测是否登录,若没登录则转向登录界面
if(!isset($_SESSION['admin_name'])){
echo "<meta http-equiv='Content-Type' content='text/html; charset=utf-8' />";
echo "<script type='text/javascript'>alert('您还未登录,请登陆后操作!');</script>";
echo "<script type='text/javascript'>window.location.href='index.php'</script>";
exit();
}
?>

只是简单的小例子,注册的话只需要把SQL语句中的验证换成写入就好了!欢迎留言。


分享到: