我有一個while循環遍歷從SQL查詢返回的行。該行中特定列的值存儲在一個數組中。然後迭代數組,並將每個元素與來自用戶的輸入進行比較。如果輸入匹配一個數組元素,那麼布爾變成true。我正在嘗試這樣做,以便用戶可以輸入密碼以訪問特定頁面。但它不起作用。我已經打印了數組中的所有值以及輸入,所以我知道那裏沒有問題。但由於某種原因,if語句並沒有對它們進行比較。代碼如下:爲什麼if語句在這個循環中不起作用? PHP
if (isset($_POST['ok'])) {
$password = $_POST['pass'];
$matched = false;
$pw = array();
mysql_connect("localhost", "xxx", "xxx")or die("Error");
mysql_select_db("details")or die("Error");
$query="SELECT * FROM members";
$result=mysql_query($query);
while ($row = mysql_fetch_assoc($result)){
$pw[] = $row["pass"];
}
foreach($pw as $p){
if(strcmp($p, $password) == 0){
$matched = true;
}
}
if ($matched==true) {
//Membership page
} else {
//Error message
}
} else {
....
試着改變你的循環中的foreach($ PW爲$ P){ 如果($ P == $密碼){$ 匹配= TRUE;打破; } } –
不要忘記**不要**存儲簡單的密碼,使用**哈希算法**! – HamZa
你有沒有想過大小寫敏感的問題? –