当前位置: 代码迷 >> MySQL >> php+MySQL图书管理系统(2)
  详细解决方案

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

热度:62   发布时间:2016-05-05 17:01:32.0
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
我会一步一步更新 如果这个链接失效了 请往下博客中去找最新的
  相关解决方案