11.2.5实现登录功能
11.2.5 实现登录功能
至此,已经完成了该BLOG系统日志文章浏览与添加的功能。通常,一个系统只允许用户登录后,才能完成该系统相应的管理操作,本章要实现的BLOG系统也不例外。本小节向读者介绍该BLOG系统用户登录与退出的实现。
(1)用户登录需要用户名和密码,这里将用户名和密码配置到.php文件中,登录程序将用户输入的用户名和密码与该php文件中设置的用户名和密码进行比较,如果完全匹配,则登录成功,否则提示用户名或密码错误。建立一个名为auth.php的文件,存放在BLOG系统的config目录下,auth.php用来设置用户名和密码,该程序内容如代码11-7所示。
代码11-7 用户名和密码配置文件auth.php
01 <?php
02 $AUTH=array();
03 $AUTH["user"]="admin";
04 $AUTH["passwd"]="21232f297a57a5a743894a0e4a801fc3";
05 ?>
【代码解析】代码第2行定义了数组$AUTH,然后第3~4行分别为数组中的用户名和用户密码赋值。
注意 auth.php定义了一个数组来存放用户名和密码,其中密码是将某字符串经过函数md5()加密的,读者在测试时可通过使用函数md5()加密某字符串后,自行设定。
(2)实现用户登录程序。该程序由处理用户登录的PHP代码和显示登录界面的HTML组成,其完整代码如代码11-8所示。
代码11-8 用户登录程序login.php
01 <?php
02 include"config/auth.php";//包含配置文件
03 session_start();
04
05 if(isset($_POST["user"])&&isset($_POST["passwd"]))//判断用户的输入
06 {
07 $user=$_POST["user"];
08 $passwd=$_POST["passwd"];
09
10 $passwd=md5($passwd);//对密码使用md5加密
11
12 if($user!=$AUTH["user"]||$passwd!=$AUTH["passwd"])//验证失败
13 {
14 echo"<strong><font color="red">用户名或密码错误;</font></strong>";
15 }
16 else
17 {
18 $_SESSION["user"]=$user;//验证成功,设置session
19 header("location:index.php");
20 }
21 }
22 ?>
23
24 <!DOCTYPE html PUBLIC"-//W3C//DTD XHTML 1.0 Transitional//EN"
25 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
26 <html>
27 <head>
28 <title>基于文本的简易BLOG</title>
29 <link rel="stylesheet"type="text/css"href="style.css"/>
30 </head>
31 <body>
32
33 <div id="container">
34 <div id="header">
35 <h1>我的BLOG</h1>
36 </div>
37 <div id="title">
38 ----I have dream……
39 </div>
40
41 <div id="left">
42 <div id="blog_entry">
43 <div id="blog_title">用户登录</div>
44
45 <div id="blog_body">
46 <div id="blog_date"></div>
47 <table border="0">
48 <form method="POST"action="login.php">
49 <tr><td>用户名称:</td><td><input type="text"name="user"size="15"></td></tr>
50 <tr><td>用户密码:</td><td><input type="password"name="passwd"
51 size="15"></td></tr>
52 <tr><td><input type="submit"value="登录"></td></tr>
53 </form>
54 </table>
55 </div><!--blog_body-->
56 </div><!--blog_entry-->
57 </div>
58
59 <div id="right">
60 <div id="sidebar">
61 <div id="menu_title">关于我</div>
62 <div id="menu_body">我是个PHP爱好者</div>
63 </div>
64 </div>
65
66 <div id="footer">
67 CopyRight 2011
68 </div>
69 </div>
70
71 <body>
72 </html>
【代码解析】首先将用户名和密码设置文件config/auth.php包含到程序当中,如代码第2行所示。接着判断用户是否输入了正确的用户名和密码,如果输入有误,将提示错误信息,如代码第14行所示;如果输入正确,将用户名存入session,然后跳转到BLOG首页,如代码第18、19行所示。BLOG首页程序将在下一个小节完成。通过浏览器访问login.php,可以看到如图11-11所示的登录界面。

下一篇:11.2.6实现BLOG首页