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'。有什么方法可以得到这条语句的查询结果???
我的想法是,应该是能具体识别的,账号错了,就报提示,账号错误,密码错了就报提示密码错误,这样,怎么具体提示? 展开
<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'。有什么方法可以得到这条语句的查询结果???
我的想法是,应该是能具体识别的,账号错了,就报提示,账号错误,密码错了就报提示密码错误,这样,怎么具体提示? 展开
2个回答
展开全部
这个就是比较基础的事情啦
你的代码中: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
你的代码中: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
展开全部
我起初也用的这个方法 后来我的老师告诉了我另一个方法 我觉得更好 如下:
$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 "密码错误";
}
}
$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 "密码错误";
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询