繁体   English   中英

登录在个人服务器上不起作用

[英]Login does not work on personal server

当我尝试登录时,显示错误“密码不正确”。 但是我知道它是正确的,因为它在我的服务器上。 以下是与服务器上的登录机制进行交互的注册表格

这是我的代码

<table width="300" border="0" align="center" cellpadding="0" cellspacing="1">
    <tr>
      <td>
        <form name="form1" method="post" action=
        "%3C?php%20echo%20$_SERVER['PHP_SELF'];%20?%3E" id="form1">
          <table width="100%" border="0" cellpadding="3" cellspacing="1">
            <tr>
              <td colspan="3"><strong>Member Login</strong></td>
            </tr>

            <tr>
              <td width="78">Username</td>

              <td width="6">:</td>

              <td width="294"><input name="myusername" type="text" id=
              "myusername" /></td>
            </tr>

            <tr>
              <td>Password</td>

              <td>:</td>

              <td><input name="mypassword" type="password" id="mypassword" /></td>
            </tr>

            <tr>
              <td>&nbsp;</td>

              <td>&nbsp;</td>

              <td><input type="submit" name="Submit" value="Login" /></td>
            </tr>

            <tr>
              <td>&nbsp;</td>

              <td>&nbsp;</td>

              <td>
              <?php include( 'config.php'); // makes sure they filled it in if (isset($_POST[ 'Submit'])){ $username=$ _POST[ 'myusername']; $password=$ _POST[ 'mypassword']; $md5_pw=m d5($password); if($username==" " || $password=="" ) { echo( 'You did not fill in a required field.'); } else{ $query=m ysql_query( "SELECT *FROM admin
                                  WHERE user_name = '$username'  ")or die(mysql_error()); $query2=m ysql_num_rows($query); if ($query2==0 ) { echo( "That user does not exist in our database. <a     href=signup.php>Click Here to Register</a>"); } while($result=m ysql_fetch_array( $query )){ if($md5_pw !=$ result[ 'password']) { echo ( "incorrect password"); } else { session_start(); header( "Location: home.php"); } } } } ?></td>
            </tr>
          </table>
        </form>
      </td>
    </tr>
  </table>
</body>
</html>

您能帮我找出错误吗?

由于即使输入的密码正确并且生成该消息的代码也始终如下,所以您始终会收到“ Password is incorrect消息

if($md5_pw != $result['password'])
{
    echo ("incorrect password");
}

显然$md5_pw$result['password']的值有所不同。 您可以通过添加echo 'md5: '.$md5_pw;来检查值echo 'md5: '.$md5_pw; echo 'password in database: '.$result['password']; 如下

echo 'md5: '.$md5_pw;
echo 'password in database: '.$result['password'];

if($md5_pw != $result['password'])
{
    echo ("incorrect password");
}

根据您的评论, $result['password']总是短两个字符,因此解决方案是更改数据库中password列的长度。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM