我將用戶名和密碼存盤在關聯陣列中,我想要一個登錄系統,它可以檢測到錯誤的密碼或用戶名不存在。我有一個 if else 代碼,但有沒有辦法讓代碼更短?我在 LoginValidator.php 上有這段代碼
<?php
$users = array(
array("User" => "Test", "Password" => "123"),
array("User" => "TestUser", "Password" => "x021"),
array("User" => "Admin", "Password" => "admin"),
array("User" => "user", "Password" => "user")
);
if ($_GET['username'] == $users[0]["User"] and $_GET['password'] == $users[0]["Password"]) {
echo "Login Succesful";
} else if ($_GET['username'] == $users[1]["User"] and $_GET['password'] == $users[1]["Password"]) {
echo "Login Succesful";
} else if ($_GET['username'] == $users[2]["User"] and $_GET['password'] == $users[2]["Password"]) {
echo "Login Succesful";
} else if ($_GET['username'] == $users[3]["User"] and $_GET['password'] == $users[3]["Password"]) {
echo"Login Succesful";
}
?>
這是 login.html
<div class="login">
<input type="text" placeholder="User Name" name="username"/>
<input type="password" placeholder="Password" name="password"/>
<input type="submit" value="Login"/>
uj5u.com熱心網友回復:
我在下面提出解決方案。此解決方案允許您管理請求代碼。
<?php
$users = [["User" => "Test", "Password" => "123"],
["User" => "TestUser", "Password" => "x021"],
["User" => "Admin", "Password" => "admin"],
["User" => "user", "Password" => "user"]
];
$get_user = 'TestUser';
$get_password = 'x021';
foreach($users as $key => $value) {
//if ($_GET['username'] == $value["User"] and $_GET['password'] == $value["Password"]) {
//echo "Login Succesful"; // for you
//}
if ($get_user == $value["User"] and $get_password == $value["Password"]) {
echo "Login Succesful"; // for test
}
}
https://wtools.io/php-sandbox/bAdy
uj5u.com熱心網友回復:
用于陣列foreach_$users
foreach($users as $uu){
if($uu['User'] == $_GET['username'] && $uu['Password'] == $_GET['password']){
echo "Login Succesful";
}
}
uj5u.com熱心網友回復:
我建議您結合current以下array_filter內容:
$username = $_GET["username"];
$password = $_GET["password"];
$check = current(array_filter($users, function($element) use ($username, $password){
return ($element["User"] == $username and $element["Password"] == $password);
}));
if(count($check) == 1){
echo("Login Successful");
}else{
echo("Oopsy doopsy");
}
uj5u.com熱心網友回復:
眾多選項之一,您可以使用array_column和 in_array函式執行此操作
if (in_array($_GET['username'], array_column($users, 'User')) and in_array($_GET['password'], array_column($users, 'Password'))) {
echo 'Login Succesful';
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/441388.html
下一篇:PHP子類需要另一個子類
