PHP里读取数据库中的信息

我做了个用户的登入和注册界面;我注册模块是有用能注册。就是登入模块中获取不到数据库中注册时的密码。老是说密码错误。
代码:<?php
session_start();
$Uname=$_POST["Uname"];
$Upwd=$_POST["Upwd"];
$_SESSION["Uname"]=$Uname;
include("link.php");
$str="select Uname from user where Uname='$Uname'";
$result=mysql_query($str,$link) or die("查询用户信息失败:".mysql_error());
$row=mysql_num_rows($result);
if($row!=0)
{
list($Uname,$Pwd)=mysql_fetch_row($result);
echo $Uname;
echo $Uwd;
if($Pwd == $Upwd){
$str="update user set isonline=1 where Uname='$Uname' and Pwd='$Upwd'";
$result=mysql_query($str,$link);
echo "<script>location.href='main.php';</script>";
}else {
echo "<script>alert('您输入的密码错误,请重新输入!');location.href='index.php';</script>";
}
}else {
echo "<script>alert('该用户不存在!请注册!');location.href='create_user.php';</script>";
}
mysql_close($link);
?>
我的密码现在是没加密的,为什么我在
list($Uname,$Pwd)=mysql_fetch_row($result); 后面加上
echo $Uname; 和echo $Pwd;
页面上只显示 $Uname 的值。。没有 $Pwd 。而且提示密码错误就是执行
}else {
echo "<script>alert('您输入的密码错误,请重新输入!');location.href='index.php';</script>";
} 的。为什么,,有什么解决方法。。
最新回答
弦落

2024-11-07 03:07:28

1.看看密码是否被加密。
2.list($key,$value)=each($arr);

!!是 list($Uname,$Pwd)=mysql_fetch_row($result); 的错误:

mysql_fetch_row($result) 返回一个数组

正确格式是:list($Uname,$Pwd)=each(mysql_fetch_row($result));
苍老了谁的最初

2024-11-07 08:56:41

说的不是很详细,我分析有几种可能,楼主可逐一排查:
1.如楼上所说,用户注册的密码是否以MD5加密存储数据库,如果是,那么匹配时应该这样:
$password = md5($Upwd);
if($Pwd == $Upwd){
2.如果数据库中的密码为md5格式存储,那么看看你的密码字段长度是否足够存储md5后的密码字符串,这里推荐你使用长度40。