我有一个遍历从 SQL 查询返回的行的 while 循环。该行中特定列的值存储在数组中。然后遍历数组,并将每个元素与用户的输入进行比较。如果输入与数组元素匹配,则布尔值变为真。我正在尝试这样做,以便用户可以输入密码来访问特定页面。然而它只是行不通。我已经打印了数组中的所有值以及输入,所以我知道那里没有问题。但由于某种原因,if 语句不会比较它们。这是代码:
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 {
....