我正在嘗試檢測和區分普通用戶和管理員的登錄。用戶只顯示“歡迎用戶”,當管理員登錄時,它會顯示所有用戶。我試過 if else 但宣告是錯誤的,它不起作用。
登錄驗證器.php
<?php
session_start();
$users = array(
array("User" => "admin", "Password" => "admin"),
array("User" => "administrator", "Password" => "administrator"),
);
$mergedUsers = array_merge($users, $_SESSION['newUsers']);
$userName = $_POST['username'];
$msg = "";
$codeinput = $_POST['code'];
foreach ($mergedUsers as $value) {
if ($userName == $value['User'] && $_POST['password'] == $value['Password']) {
if ($codeinput == $_SESSION['captcha']) {
echo "Captcha valid";
echo "<p>Login successful<3</p>";
if ($value['User'] == $users) {
echo "Welcome admin!";
echo print_r($mergedUsers);
echo print_r($users);
echo '<pre>' . print_r($_SESSION, TRUE) . '</pre>';
} else
echo "Welcome user!";
} else {
echo "Captcha NOT valid";
}
} else if ($userName == $value["User"] and $_POST['password'] != $value["Password"]) {
//$msg = "<p>Wrong Password</p>";
echo "Wrong password";
}
}
?>
登錄.php
<form action="LoginValidator.php" method="POST">
<div class="login">
<h3>Login Here</h3>
<label for="username">Username</label>
<input type="text" placeholder="User name" id="username" name="username" required>
<label for="password">Password</label>
<input type="password" placeholder="Password" id="password" name="password" required>
<p>Enter this number: <?php echo $_SESSION['captcha']; ?></p>
<p><input type="text" name="code" required />
<button>Log In</button>
<p> Don't have any account yet? <br> <a href="registration.php"> Register Here </a> </p>
</div>
</div>
</form>
uj5u.com熱心網友回復:
我在您正在檢查管理員的 if 條件中發現了問題。
if ($value['User'] == $users) {
在這里,您將一個值與一個陣列進行比較,這是行不通的。這個問題可以通過比較一個陣列和一個陣列來解決。
為此,您只需將上面的 if 條件更改為:
if (in_array($value, $users)) {
該in_array()
方法將檢查$value
陣列中是否存在$user
陣列,如果存在則回傳true,否則回傳false。
我希望這能解決您的問題。
uj5u.com熱心網友回復:
您可以嘗試輸入值
if ($value['User'] == "ADMIN") {
echo "Welcome admin!";
echo print_r($mergedUsers);
echo print_r($users);
echo '<pre>' . print_r($_SESSION, TRUE) . '</pre>';
} else
echo "Welcome user!";
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/486612.html
上一篇:如何遍歷列舉