2016-04-14 177 views
2

我試過這段代碼,它似乎沒有工作,所以我會很感激,如果有人可以幫我解決任何錯誤。用戶名和密碼驗證PHP MySql

簡要概述,我的數據庫根目錄是'localhost',數據庫名'ee2800'密碼'secret',我需要它來驗證用戶名和密碼。

以下是我似乎沒有工作。

<?php 
 
    $conn = new mysqli("localhost", "ee2800", "secret", "ee2800"); 
 

 
    if (mysqli_connect_errno()) { 
 
     echo "Connection Failed. Try again." . mysqli_connect_error(); 
 
     exit(); 
 
    } /* else { 
 
     echo "Connection Successful <br/> "; 
 
     } */ 
 

 
    // Connect to database server 
 
    mysql_connect("localhost", "ee2800", "secret") or die(mysql_error()); 
 

 
    $UserName = mysql_real_escape_string($_POST['UserName']); 
 
    $Password = mysql_real_escape_string($_POST['Password']); 
 

 
    $sql = "SELECT * FROM users WHERE UserName = '$UserName' AND Password = '$Password' "; 
 
    $result = mysql_query($sql) or die(mysql_error()); 
 
    $numrows = mysql_num_rows($result); 
 
    if ($numrows > 1) { 
 
    else if ($numrows = 0) { 
 
     echo "wrong username or password" 
 
    } else { 
 
     echo "welcome" 
 
    } 
 

 
    // Close the database connection 
 
    mysql_close(); 
 
    ?>

謝謝

+2

**注:**你混合'mysqli_ *'和'mysql_ *'功能。 –

+0

也許你在'if($ numrows> 1)'塊中忘記了分號? –

+0

順便說一下,'$ conn = new mysqli(「localhost」,「ee2800」,「secret」,「ee2800」); .... echo「Connection Successful
」; } * /'在這段代碼中完全沒用。 –

回答

1

出於安全的愛,請不要在密碼純文本格式存儲。對用戶輸入和最初存儲的值使用相同的加密方法,以進一步防止用戶密碼泄漏。這個代碼應該對你有所幫助。

<?php 

$dbLink = mysqli_connect("localhost", "ee2800", "secret", "ee2800"); 
if (!$dbLink) { 
    echo "Connection Failed. Try again." . mysqli_connect_error(); 
    exit(); 
} else { 
    echo "Connection Successful <br />"; 
} 

$UserName = mysqli_real_escape_string($_POST['UserName']); 
$Password = mysqli_real_escape_string($_POST['Password']); //NOTE FOR THE FUTURE - PLEASE ADD ENCRYPTION TO THIS 

$sql = "SELECT * FROM users WHERE UserName = '$UserName' AND Password = '$Password' "; 
$result = mysqli_query($dbLink, $sql) or die(mysqli_error()); 
$numrows = mysqli_num_rows($result, MYSQLI_ASSOC); 

if ($numrows == 0) { 
    echo "wrong username or password"; 
} else { 
    echo "welcome"; 
} 

// Close the database connection 
mysqli_close(); 

>

+0

嗨,非常感謝您的回覆......出於某種原因,它仍然無法正常工作,有什麼方法可以通過電子郵件發送給我的項目來看看嗎?我真的很感激它,我真的不知道爲什麼它不起作用 – NTal

+0

我還必須包括一個JSON登錄失敗在迴應中回顯和一個JSON登錄成功必須迴應.. – NTal

+0

對不起,我真的不能通過整個其他人的項目。您可能想嘗試通過向頂部添加以下行來啓用詳細調試: ini_set(「display_errors」,1); error_reporting(E_ALL); – RefreshCarts