上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
1.5 登录模块设计
1.5.1 登录模块概述
出于对会议内容保密性的考虑,会议记录管理系统不支持匿名用户访问,所以用户如果想要正常使用该系统,首先必须执行用户登录操作,在登录成功后,才可以进行添加、查看、查找等操作。其运行效果如图1.14所示。
图1.14 登录模块的运行效果
1.5.2 用户权限判断技术
在index.php文件中通过SESSION变量自动判断登录状态。如果用户状态登录被激活,则自动跳转到会议管理首页,否则跳转到用户登录界面。其代码如下:
代码位置:光盘\MR\01\index.php
<?php session_start(); //判断当前登录状态 if(isset($_SESSION["name"]) and isset($_SESSION["id"]) and isset($_SESSION["rights"])){ echo "<meta http-equiv=\"refresh\" content=\"0;url=manager.php\" />"; }else{ echo "<meta http-equiv=\"refresh\" content=\"0;url=login.php\" />"; } ?>
1.5.3 用户登录实现过程
创建前台登录页面(login.php)完成用户登录表单的设计,当单击“登录”按钮时,将用户名和密码提交到处理页(login_chk.php),完成登录用户的验证操作。
login.php文件的关键代码如下:
<table cellpadding="0" cellspacing="0"> <form method="post" action="login_chk.php"> <tr> <td width="58" height="42"><div align="right">用户名:</div></td> <td width="163"><input class="input1" id="username" type="text" name="username" onmouseover="this.style.backgroundColor='#deebef'" onmouseout="this.style. backgroundColor=''"/></td> </tr> <tr> <td width="58" height="42"><div align="right">密 码:</div></td> <td width="163"><input class="input2" id="pass" type="password" name= "pass" onmouseover="this.style.backgroundColor='#deebef'" onmouseout ="this.style.backgroundColor=''"/></td> </tr> <tr> <td colspan="2" height="22"><center> <input name="submit" type="submit" class="btnlogin" value=""/> <input name="reset" type="reset" class="btnreset" value="" /></center> </td> </tr> </form> </table>
登录处理文件login_chk.php,完成对系统提交数据的判断,并且更新用户登录的次数和时间。其关键代码如下:
<?php session_start(); include_once("conn/conn.php"); //加载数据库连接文件 if(empty($_POST["username"]) or empty($_POST["pass"])){ echo "<script>alert('用户名和密码不能为空!');history.go(-1);</script>"; }else{ $username=$_POST["username"]; $pass=$_POST["pass"]; //判断登录用户名是否存在 $sqltest="select * from tb_meeting_user where userName='$username'"; $testrst=$conn->Execute($sqltest); //执行查询操作 if(!$testrst->EOF){ $sqlstr="select * from tb_meeting_user where userName='$username' and userPassword='$pass'"; $rst=$conn->Execute($sqlstr); if(!$rst->EOF){ //判断登录用户名和密码是否正确 if($rst->fields[6]==0){ //判断登录用户是否被冻结 $_SESSION["id"]=$rst->fields[0]; //赋值给SESSION变量 $_SESSION["name"]=$rst->fields[1]; $_SESSION["rights"]=$rst->fields[5]; $_SESSION["lasttime"]=$rst->fields[3]; $logindate=date("Y-m-d ").date("G:i:s"); //当前登录时间 $logincount=$rst->fields[4]; //当前登录次数 $logincount++; //登录次数自增1 $sqlstrud="update tb_meeting_user set userLoginCount= $logincount,userLastLoginDate='$logindate' where userId = $_SESSION[id]"; //更新登录次数和时间 $conn->Execute($sqlstrud); echo "<meta http-equiv=\"refresh\" content=\"2;url=manager.php\" />"; echo "<img src='images/loginwait.jpg' width='1003' height='636' />"; }else if($rst->fields[6]==1){ echo "<script>alert('该用户账号已被冻结 请联系管理员!');history.go (-1);</script>"; } }else{ echo "<script>alert('密码错误,请重新登录。');history.go(-1);</script>"; } }else{ echo "<script>alert('该用户名不存在!,请重新登录。');history.go(-1); </script>"; } } ?>
当用户登录成功后,页面会在2秒后自动跳转到会议记录管理系统的主界面。