2015-12-13 32 views
0

我花了幾個小時試圖弄清楚爲什麼這段代碼無法正常工作。這段代碼是登錄頁面的開始,但目前我無法超越這個階段。此時代碼的要點是輸出剛剛登錄的用戶的用戶詳細信息。 我已正確連接到我的數據庫。 任何幫助將不勝感激。mySQL/PHP登錄表單無法正常工作

<?php 

$link= mysqli_connect("localhost", "mySql USER NAME", "mySql Password ", "mySql Database name"); 

if ($_POST['submit']=="Log In") { 

    $query="SELECT * FROM users WHERE email='".mysqli_real_escape_string($link, $_POST['loginemail'])."' AND password='".md5(md5($_POST['loginemail']).$_POST['logingpassword'])."' LIMIT 1"; 

    $result = mysqli_query($link, $query); 

    $row = mysqli_fetch_array($result, MYSQLI_BOTH); 

    print_r($row); 

} 



?> 

<form method="post"> 

    <input type="email" name="email" id="loginemail"/> 

    <input type="password" name="password" id="loginpassword"/> 

    <input type="submit" name="submit" value="Log In"/> 

</form> 
+2

'的print_r($ _ POST)',你應該有看到你的porblem –

+0

您的連接或查詢 – amdixon

+1

如果'$ _ POST [ '註冊郵箱']'可以是雙md5ed處理上沒有錯誤?還要注意'name'是傳遞給'$ _POST'的東西;不是'id'。 – chris85

回答

0

我想你在你的PHP代碼中使用了錯誤的變量名來查詢數據庫。

$query="SELECT * FROM users WHERE email='".mysqli_real_escape_string($link, $_POST['loginemail'])."' AND password='".md5(md5($_POST['loginemail']).$_POST['logingpassword'])."' LIMIT 1"; 

在上面的線似乎是在數據庫查詢電子郵件地址和密碼的使用錯誤,因爲HTML表單POST聲明的變量名作爲名稱=「電子郵件」和名稱=「密碼」。 (我假設這是完整的代碼,並沒有AJAX函數與其他變量名稱一起提交此POST請求)

請嘗試下面的代碼來代替。

$query="SELECT * FROM users WHERE email='".mysqli_real_escape_string($link, $_POST['email'])."' AND password='".md5(md5($_POST['email']).$_POST['password'])."' LIMIT 1"; 
+0

認爲這工作,但結果不是太。新查詢也發生了同樣的情況。任何其他想法? –