2013-04-16 45 views
0

這是我的php登錄腳本。我發現它在網絡上,它工作正常,但...爲我簡單的php登錄腳本添加一個額外的用戶

有沒有解決方案,以添加一個用戶?

<? 

if ($_SERVER["PHP_AUTH_USER"] != "user1" || $_SERVER["PHP_AUTH_PW"] != "pass1") 
{ 

    header("WWW-Authenticate: Basic realm=\"Enter username and password to proceed\""); 
    header("HTTP/1.0 401 Unauthorized"); 

    echo "<body>"; 
    echo "<div style='position:relative; margin:100px auto auto; width: 400px; height:auto; padding:20px; border:1px #ddd solid; color:#ff9900;'>Authentication failed."; 
    echo "</div>"; 
    echo "</body>"; 

    die(); 
}  
else 
{ 
    echo "<div style='position:fixed; left:0px; top:90px; background-color:#000; color:#ff9900; padding:4px; z-index: 999;'>Logged in.</div>"; 
} 
?> 

謝謝您的高級。

回答

4

(在頂部:)

$users = array('User1' => 'Pass1', 'User2' => 'Pass2',); 

if (!isset($users[$_SERVER["PHP_AUTH_USER"]]) || $users[$_SERVER["PHP_AUTH_USER"]] != $_SERVER["PHP_AUTH_PW"]) 
/* ... */ 

如果數據相匹配的條目它節省了在一個陣列中的用戶數據,然後檢查。

+0

謝謝@bwoebi!它工作正常 – Bastiaan

0
if (($_SERVER["PHP_AUTH_USER"] == "user1" && $_SERVER["PHP_AUTH_PW"] == "pass1") ||  ($_SERVER["PHP_AUTH_USER"] == "user2" && $_SERVER["PHP_AUTH_PW"] == "pass2")) 
{ 
} 
+0

如果將來需要添加第三個用戶會怎麼樣?這種方法很快就會變成一團糟 –

+0

謝謝你的回答! – Bastiaan

1

最好的方法是將用戶添加到數組中,以保持整潔!

$users = array(
    'user1' => 'pass1', 
    'user2' => 'pass2' 
); 
$user = $_SERVER["PHP_AUTH_USER"]; 
$pass = $_SERVER["PHP_AUTH_PW"]; 

if (array_key_exists($user, $users) && $users[$user] === $pass) { 
    // Do your thang 
} 
+0

謝謝你的回答! – Bastiaan

0

嘗試這樣:

$users = array('user1' => 'passw1', 
       'user2' => 'passw2'); 

if (!array_key_exists($_SERVER["PHP_AUTH_USER"],$users) || $users[$_SERVER["PHP_AUTH_USER"]] != $_SERVER["PHP_AUTH_PW"]) 
{ 

    header("WWW-Authenticate: Basic realm=\"Enter username and password to proceed\""); 
    header("HTTP/1.0 401 Unauthorized"); 

    echo "<body>"; 
    echo "<div style='position:relative; margin:100px auto auto; width: 400px; height:auto; padding:20px; border:1px #ddd solid; color:#ff9900;'>Authentication failed."; 
    echo "</div>"; 
    echo "</body>"; 

    die(); 
} 

基本上你將想要在數組中的用戶;用戶名作爲數組鍵和用戶密碼作爲數組值。然後您檢查以確保提供的用戶位於已定義的列表中,然後檢查以確保密碼正確。

這就是說;這不是一個非常強大的登錄解決方案,所以請確保你沒有使用保護任何敏感的東西。

+0

當您測試它時,您的版本在第8行給了我一個「意想不到的T_IF」。 ;) –

+0

謝謝你的回答! – Bastiaan

+0

Oop感謝Fred;在我的數組聲明 – Dogoferis

相關問題