php连接mysql数据库,账号密码的验证问题。

<body><formaction=""method="post">请输入账号:<inputtype="text"name="name"size="20"><br><br... <body>
<form action="" method="post">
请输入账号:
<input type="text" name="name" size="20"><br><br>
请输入密码:
<input type="password" name="pass" size="20">
<br><br>
    
<input type="submit" name="sub" value="登 陆">
    
<input type="reset" name="re" value="重 填">
</form>
<?php
if($_POST[sub] =="登 陆"){

$name=$_POST['name'];
$pass=$_POST['pass'];

$link = mysql_connect('localhost','root','123'); //mysql数据库连接
mysql_select_db("library"); //连接到要操作的数据库

$sql1="select ID from user where ID = '$name'"; //创建数据库语句
$sql2="select Password from user where ID = '$name'"; //创建数据库语句

$result1=mysql_query($sql1,$link);//创建结果集

if(mysql_affected_rows($link)!=0){

$result2=mysql_query($sql2,$link);//创建结果集
if(mysql_affected_rows($link)!=0)

echo "<script>alert('恭喜,登陆成功。');history.go(-2);</script>";

else
echo "<script>alert('对不起,密码错误,登陆失败。');</script>";
}
else

echo "<script>alert('对不起,账号错误,登陆失败。');</script>";

mysql_close($link);
}
?>
</body>

我是这样写的,但是不对,验证老是出问题,请问PHP验证账号密码应该怎么验证啊。有什么方法可以获取查询数据库的结果??就是说,比如我select ID from user where ID = '$name'。有什么方法可以得到这条语句的查询结果???
我的想法是,应该是能具体识别的,账号错了,就报提示,账号错误,密码错了就报提示密码错误,这样,怎么具体提示?
展开
 我来答
hz...3@gmail.com
2009-02-01
知道答主
回答量:13
采纳率:0%
帮助的人:0
展开全部
这个就是比较基础的事情啦

你的代码中:if(mysql_affected_rows($link)!=0)
意思是某个查询所影响的行数,如果用户名和密码都不对,将返回0行,当然就不能通过验证啦
这样是一次性验证了用户名和密码.
但是你的sql语句有问题
应该这样 : $sql2="select * from user where name = '$name' and password = '$pass'";

你要获取查询的结果: 一般都用 mysql_fetch_array();
按照你上面例子用法
$result = mysql_query (select * from user where name = '$name')
$row = mysql_fetch_array($result);
如果你的sql语句没错话,用户名又存在
那么 就返回了一个数组 $row
你用echo $row[0] 或者 $row['name'] 试试就可以获得内容
你获得了用户名之后,就可以继续查询秘密是否正确啦..
原来一样
还不懂的话,来我博客看看 我也在学习php 大家交流一下
http://blog.hzw513.com

参考资料: http://blog.hzw513.com

刻影
2009-01-31 · TA获得超过243个赞
知道小有建树答主
回答量:146
采纳率:0%
帮助的人:105万
展开全部
我起初也用的这个方法 后来我的老师告诉了我另一个方法 我觉得更好 如下:
$query="select * from xxx where name=$name and pswd=$pswd";
$result=mysql_query($query);
$row=mysql_num_rows($result);
if($row==1)
{
//登陆成功
}

你应该能知道$query中的sql语句的含义 我就不多做解释了

[回答补充]
那就这样:
$query='select * from xxx where name=$name';
$result=mysql_query($query);
$row=mysql_num_rows($result);
if($row==0)
{
echo "该用户不存在";
}
else
{
if($password==mysql_result($result,0,密码列名))
{
//登陆成功的后续操作
}
else
{
echo "密码错误";
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式