[英]Dreamweaver CS6 Login Server Behaviour does not work on production server
[英]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> </td>
<td> </td>
<td><input type="submit" name="Submit" value="Login" /></td>
</tr>
<tr>
<td> </td>
<td> </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.