Php login хранит пароли в txt

Теперь я знаю, что хранение паролей в текстовом файле небезопасно, но не беспокойтесь. Безопасность не моя цель здесь, это похоже на один из этих сайтов hackme.
Итак, мне нужно знать, как я могу хранить имена пользователей и пароли в текстовом файле, пока у меня есть этот массив

$logins = array('Example' => '123','test' => '123','simon' => '123'); 

и это утверждение if

 if (isset($logins[$Username]) && $logins[$Username] == $Password){ /* Success: Set session variables and redirect to Protected page */ $_SESSION['UserData']['Username']=$logins[$Username]; header("location:index.php"); exit; } 

Как бы это сделать, а не хранить их в виде списка, я могу сохранить их в текстовом файле, а затем запустить оператор if в текстовом файле?

Solutions Collecting From Web of "Php login хранит пароли в txt"

Вы можете сделать JSON и передать его как массив. Итак, сначала подготовьте файл. Содержимое passwords.json (или passwords.txt , назовите его, как вам угодно):

 {} 

И теперь вам нужно сделать следующее:

  • Прочтите содержимое файла.
  • Разберите их в ассоциативный массив.
  • Проверьте ключи на наличие имени пользователя.
  • Проверьте пароль.

Итак, в конечном счете, код будет примерно таким:

 <?php // Read the file. $users = file_get_contents("passwords.json"); // Convert into an associative array. $users = json_decode($users); // Get the input from the user. $username = $_POST["username"]; $password = $_POST["password"]; // Check the validity. if (array_key_exists($username, $users) && $users[$username] == $password) { // Valid user. $_SESSION["user"] = array($username, $password); } else { echo "Not Right!"; } ?> 

И если вы хотите сохранить пользователей, вам просто нужно сделать наоборот.

  1. Получите имя пользователя и пароль.
  2. Прочитайте исходный список пользователей в массиве.
  3. Добавьте новое имя пользователя и пароль.
  4. Преобразуйте его в JSON.
  5. Сохраните его внутри файла.

Окончательный код:

 <?php // Read the file. $users = file_get_contents("passwords.json"); // Convert into an associative array. $users = json_decode($users); // Get the input from the user. $username = $_POST["username"]; $password = $_POST["password"]; // Store the new one into the array. $users[$username] = $password; // Convert back to JSON. $users = json_encode($users); // Put it into the file. file_put_contents("passwords.json", $users); ?>