PHP里读取数据库中的信息

来源:百度知道 编辑:UC知道 时间:2024/07/03 11:22:41
我做了个用户的登入和注册界面;我注册模块是有用能注册。就是登入模块中获取不到数据库中注册时的密码。老是说密码错误。
代码:<?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>

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

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));