php+MySQL图书管理系统(二)

来源:互联网 发布:稳定的网络怎么 编辑:程序博客网 时间:2024/05/29 05:58

第五 添加数据库管理员数据与用户数据

这个比较无聊 用java拼接了一下sql语句 然后写入数据库
这个放在附件上传就好了

第六 管理员与用户的登入验证

1、验证码。验证码一般就是服务器产生一个随机数,保存在session中,最后与用户的输入验证。因为验证码是图形显示的,所以必须用户手工输入,避免机器自动识别,防止密码暴力破解。2、在线验证。通过用户的session值,(储存在COOKIE中,如果用户不使用COOKIE,则使用地址栏GET方式向服务器提交),比较用户是否合法、超时。3、上面两个场合是通行的做法。但是还有一种做法,是当前比较先进的。那就是对于用户的密码加密传送。用户的密码,如果以http方式传输,一般都是明文传送的,这样的密码,容易被嗅探器捕获。如果使用session,情况就好多了。在服务器端取随机数,随机数在服务器端保存在session值中,并将随机数通过html页面js程序的方式发送到客户端。用户端只要将随机数和密码的MD5结果发送出去,服务端从session中取出随机数和数据库数据计算出结果,两个结果进行比较。
其中第三种应该是最安全的,当然也可以把方法结合起来一起用,这里我只是将密码做了一次MD5存放到数据库了
下面是登入界面 自己写的比较丑 直接找了一个开源Demo,想用的话去下载就好 或者直接获取源代码 我就不贴出来了


然后是登入验证 这个比较简单了 我先是简单的把连接数据库的代码放在了一个文件中 ,封装成一个个的函数,本来想封装一个静态类的,无奈php语言不熟悉,加上时间比较紧了所以直接就用函数好了,毕竟代码量不大
贴出代码:
<?phpfunction getLink(){$link = mysql_connect('127.0.0.1', 'root', '') or die('连接数据路失败,请检查后重试!');if (!$link) {echo "连接失败1";return '0';}else{return $link;}}function getResoures($DBName, $sql){try{$db_select = mysql_select_db($DBName);if (!$db_select) {echo "连接失败2";//return '0';}$resoures = mysql_query($sql);return $resoures;}catch(Exception $e){echo 'Caught exception: ',  $e->getMessage(), "\n";//return '1'.$e->getMessage();}}function closeConnect($link){if (null != $link) {mysql_close($link);}}?>

然后是把表单的数据提交给登入的验证界面,同样很简单没啥好说的
贴出代码:
<?php/* 0 admin登入成功 * 1 admin密码错误 * 2 admin管理员不存在 *  * 3 user登入成功 * 4 user密码错误 * 5 user用户名不存在 */require("MySqlUtils.php");header("Content-type:text/html;charset=utf-8");$username = $_POST["username"];$password = $_POST["password"];$password = md5($password);$isAdmin = $_POST['isAdmin'];if ($isAdmin){$r = adminLogin($username, $password);}else{$r = userLogin($username, $password);}selectNext($r);function selectNext($r){if(!$r){echo "<Script>alert('登入成功');</Script>";}else if ($r == 1) {echo "<Script>alert('密码错误,请重新登入');</Script>";echo "<Script>window.location.href='login.php'</Script>";}else if ($r == 2){echo "<Script>alert('不存在该管理员,请重新登入');</Script>";echo "<Script>window.location.href='login.php'</Script>";}else if ($r == 3){echo "<Script>alert('登入成功');</Script>";}else if ($r == 4){echo "<Script>alert('密码错误,请重新登入');</Script>";}else {echo "<Script>alert('不存在该用户,请重新登入');</Script>";}}function adminLogin($username, $password){$link = getLink();$resoures = getResoures('libray', 'select * from admin;');$info = mysql_fetch_array($resoures);while($info){$u = $info['AdminID'];$p = $info['Password_MD5'];if ($username == $u) {if ($password == $p) {return 0;}else{return 1;}}$info = mysql_fetch_array($resoures);}closeConnect($link);return 2;}function userLogin($username, $password){$link = getLink();$resoures = getResoures('libray', 'select * from card;');$info = mysql_fetch_array($resoures);while($info){$u = $info['CardID'];$p = $info['Password'];if ($username == $u) {if ($password == $p) {return 3;}else{return 4;}}$info = mysql_fetch_array($resoures);}closeConnect($link);return 5;}?>

做到这个就可完成登入了
我把代码存到了百度云 链接:http://pan.baidu.com/s/1kTKNBaZ 密码:c0rj
我会一步一步更新 如果这个链接失效了 请往下博客中去找最新的
1 0