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

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

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

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

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

然后是登入验证 这个比较简单了 我先是简单的把连接数据库的代码放在了一个文件中 ,封装成一个个的函数,本来想封装一个静态类的,无奈php语言不熟悉,加上时间比较紧了所以直接就用函数好了,毕竟代码量不大
贴出代码:
<?php

	function 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
我会一步一步更新 如果这个链接失效了 请往下博客中去找最新的

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。