请各位大哥哥大姐姐帮忙看下~登陆问题,我注册信息成功后,登陆总是提示用户名或密码错误,测试了下echo $reback;这里总是输出2。表示用户名和密码是没错的~所以请大家帮我看下问题出在哪儿了,非常感谢~~~登陆验证的php文件如下:
<?php
header ( "Content-type: text/html; charset=UTF-8" ); 
require("system/system.inc.php");   //包含配置文件
$name = $_GET['user'];
$pwd = md5($_GET['pwd']);
$reback = '';
$sql = "select * from tb_admin where name = '$name' and pwd = '$pwd'";$rst = $admindb->ExecSQL($sql,$conn);
if($rst){
$_SESSION['admin'] = $rst[0]['name'];
$reback = '1';
}else{
$reback = '2';
}
echo $reback;
?>其中system.inc.php文件中的ExecSQL($sqlstr,$conn)如下://数据库管理类
class AdminDB{
function ExecSQL($sqlstr,$conn){ $sqltype=strtolower(substr(trim($sqlstr),0,6));
$rs=$conn->prepare($sqlstr); //准备查询语句
$rs->execute(); //执行查询语句,并返回结果集
if($sqltype=="select"){
$array=$rs->fetchAll(PDO::FETCH_ASSOC); //获取结果集中的所有数据
if(count($array)==0 || $rs==false)
return false;
else
return $array;
}elseif ($sqltype=="update" || $sqltype=="insert" || $sqltype=="delete"){
if($rs)
    return true;
else
    return false;
}
}
}

解决方案 »

  1.   

    中途echo一下$sql看看是怎样的语句
      

  2.   

    你对面向对象还不是很熟悉
    $admindb对象都还没有声明?
    $admindb = new AdminDB();//加上声明 
    $rst = $admindb->ExecSQL($sql,$conn);
      

  3.   

    echo $reback;这里总是输出2。表示用户名和密码是
    因为你有
    $sql = "select * from tb_admin where name = '$name' and pwd = '$pwd'";//户名和密码是查询条件
    $rst = $admindb->ExecSQL($sql,$conn);//得到查询结果
    if($rst){//找到
    $_SESSION['admin'] = $rst[0]['name'];
    $reback = '1';
    }else{//找不到
    $reback = '2';
    }
      

  4.   

    但是我进后台数据库中查看用户名跟密码都没错,也注册过好多次,试过好多次,都不行,我觉得不是用户名跟密码的问题,应该是执行的时候【$rst = $admindb->ExecSQL($sql,$conn);//得到查询结果
    】出问题,就是不知道哪里错~