Использовать массив в PHP для сравнения имени пользователя и пароля

У меня есть следующий php-скрипт, который имеет одно имя пользователя и пароль:

$Username = 'user1'; $Password = 'pass1'; /******************************************************************************/ if (isset($_POST['submitform'])){ // Clean up the input values foreach($_POST as $key => $value) { $_POST[$key] = stripslashes($_POST[$key]); $_POST[$key] = htmlspecialchars(strip_tags($_POST[$key])); } $user = isset($_POST['user']) ? $_POST['user'] : ''; $pass = isset($_POST['pass']) ? $_POST['pass'] : ''; $report = $_POST['typereport']; if ($pass != $Password || $user != $Username) { showForm("Wrong Username/Password"); exit(); } } else { showForm(); exit(); } 

Я хотел бы сделать сценарий более надежным, что означает, что я хотел бы иметь другое имя пользователя / пароль, чтобы несколько пользователей могли войти (хотите его для отслеживания)

Итак, как мне изменить скрипт, поэтому я могу использовать следующие для $Username и $Password :

 $Username=array("user1","user2","user3"); $Password=array("pass1","pass2","pass3"); 

Таким образом, сценарий всегда будет соответствовать правильному имени пользователя и паролю и позволит мне иметь несколько пользователей?

Solutions Collecting From Web of "Использовать массив в PHP для сравнения имени пользователя и пароля"

Я бы использовал базу данных. Если вы должны сделать hardcode, я бы использовал ассоциативный массив:

 <?php $logins = array( 'username1' => 'password1', 'username2' => 'password2', 'username3' => 'password3', ); $user = isset($_POST['user']) ? strtolower($_POST['user']) : ''; $pass = isset($_POST['pass']) ? $_POST['pass'] : ''; if ( ! isset($logins[$user]) or $logins[$user] != $pass) { showForm("Wrong Username/Password"); exit(); }