簡體   English   中英

循環中的 Elseif 似乎不起作用

[英]Elseif in loop doesn't seem to be working

我想知道是否有人可以幫我解決我在讓一段代碼工作時遇到的問題? 到目前為止,我已經花了幾個小時,雖然它看起來很簡單,但它不會合作:(

這是一個簡單的登錄頁面,目前我要做的就是檢查輸入的名稱和密碼與存儲在數據庫中的名稱和密碼是否存在,如果匹配則授予訪問權限。 那部分工作正常,但之后的 elseif 部分根本沒有做任何事情。

elseif 應該回顯一條消息,說明他們的用戶名或密碼不匹配,但沒有任何反應 - 當您單擊提交時使用不正確的詳細信息,頁面似乎已提交但消息未出現。 問題可能與它所在的循環有關嗎?

很抱歉,如果這是一個愚蠢的問題,或者之前已經回答過,這讓我有點發瘋。

非常感謝任何可以幫助我的人,非常感謝:)

PS我也嘗試過使用 (mysqli_num_rows($query) == 0) 檢查數據庫的輸入值,但這似乎沒有什么區別。


$username = $_POST['username'];
$password = $_POST['password'];

$query = "SELECT * FROM users WHERE username='$username' AND password='$password'";
$result=mysqli_query($connection,$query);  

while($row=mysqli_fetch_assoc($result)) {

$dbusername = $row['username'];
$dbpassword = $row['password'];

//Check to see if posted values equal db values    
if ($dbusername == $username && $dbpassword == $password) {

echo "Hello " . $dbusername."!";  

} //else, check to see that either of the posted values don't match db values
elseif ($dbusername !== $username || $dbpassword !== $password) 
{

echo "Sorry, your username or password don't match";

} //end elseif
} //end while loop
} //end submit check

首先,代碼存在嚴重的安全問題。 請閱讀: 什么是 SQL 注射?

elseif里面的代碼永遠不會被執行,因為如果你輸入了錯誤的用戶名和密碼,你的查詢結果就會變成空的,所以你永遠不會進入循環。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM