代码太长,我没看
不过,你可以加个括号试试:
if ( $pwd == ($pwd_load))

if ($pwd_load == $pwd)行的话,接分!!!!!!!!!!!!!!!

解决方案 »

  1.   

    var_dump
    查看一下四否一致撒,前后空格,换行什么的都确认一下
      

  2.   

    如果你非要这样.应该用:strcmp
    字符串比较。函数说明:
    内容说明 
    本函数用来比较二字符串的大小。返回负数表示 str1 小于 str2;返回正数表示 str1 大于 str2;返回零表示二字符串相同。
      

  3.   

    echo "[$pwd][$pwd_load]";
    看看有没有多空格什么的
      

  4.   

    是不是字符编码的问题,全弄成utf8看看
      

  5.   

    if($pwd=='$pwd_load')试下,应该是字符型的吧。
      

  6.   

    print 两个密码的 strlen 看看?分别是多少来的?
      

  7.   

    把 ($pwd==$pwd_load)换成
    if(strcmp($pwd,$pwd_load)==0)看看?
      

  8.   

    从数据库中取出数据后面自动添加有若干个空格,需要trim一下就ok。
      

  9.   

    强烈同意用if(strcmp($pwd,$pwd_load)==0)
      

  10.   

    最简单的,其实用如下代码来判断一下:<?
    if ($pwd===$pwd_load) 
    echo "两个变量完全相同,无论是值或者数据类型";else if (!gettype($pwd)==gettype($pwd_load)) 
    echo "两个变量虽然看起来一样,但实际上数据类型不一致";  else 
      echo "两个变量虽然类型一样,但值存在细微区别,比如某个值存在多余空格";
    ?>
      

  11.   

    在其他语言里也一样会有这种错误!
    目前我知道的有java,asp,net都会有这个问题!
      

  12.   

    我觉得楼主是不是把事情搞复杂了,直接用SQL去到用户表查询用户输入的用户名和密码
    $password=md5($password);
    $str="select * from moto_admin where name='admin' and pwd_load='$password'";
    $result=mysql_query($str,$link_id);
    mysql_num_rows 
    if(0==mysql_num_rows($result))
      echo "登录失败";
    else
      echo "登录成功";如果非得按照您自己的思路,我建议判断时用strcmp
      

  13.   

    我不是喜欢教训别人,不过说实话,php代码不应该写成这个样子:
    首先,程序代码和标记代码混杂在一起,搞得乱七八糟。我都没心情看,我想其他人不会有心情看。
    其次,正如上所说,居然去数据库中把密码取来比较,那还由sql语言干吗?
    再次,看这句“require_once("sys_conf.inc");”,看看包含进来的是什么类型的文件?我不清楚这个文件里面是什么东西,估计是一些系统配置相关的东西吧,是不是有数据库账户、密码之类的东西?如果有人在浏览器里输入http://ip/.../sys_conf.inc,岂不是都告诉别人了?至少后缀名应该为php吧。
    我刚写程序的时候,也曾这样,被一位老前辈骂的狗血喷头。
    还是请楼主改变一下编码的习惯!