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