Сохранение имени пользователя и пароля в текстовом файле

#php #authentication

#php #аутентификация

Вопрос:

Как мне сохранить имя пользователя и пароль в отдельном текстовом файле вместо этого файла php. Ниже приведен код. Я хочу создать систему регистрации входа без использования базы данных.

 <?php
// Init   Start session
error_reporting(E_ALL amp; ~E_NOTICE);
session_start();

// Handle AJAX request
switch ($_POST['req']) {
  // Invalid request
  default:
    echo "ERR";
    break;

  // Sign In
  case "in":
    // Already signed in
    if (is_array($_SESSION['user'])) {
      die("OK");
    }

    // Email => Password
    // ADD MORE OF YOUR OWN HERE!
    $users = [
      "john@doe.com" => "123456",
      "jane@doe.com" => "654321"
    ];

    // Check given email amp; password
    if (isset($users[$_POST['email']]) amp;amp; $_POST['password'] == $users[$_POST['email']]) {
      $_SESSION['user'] = [
        "email" => $_POST['email']
      ];
      echo "OK";
    } else {
      echo "ERR";
    }
    break;

  // Sign out
  case "out":
    unset ($_SESSION['user']);
    echo "OK";
    break;
}
?>```
  

Комментарии:

1. сохранить: json_encode -> file_put_contents. получаем: file_get_contents -> json_decode .. хотя это плохая практика

2. или создайте строку из массива, чтобы сделать <?php return [['username' => '', 'password' => '']]; тогда include/require ее более безопасной (например, конфигурацию), но все равно плохая практика

3. не могли бы вы, ребята, уточнить, как? не могли бы вы, пожалуйста, создать примеры файлов?

4. я думаю, что ответ заключается в том, что вы этого не делаете. Зачем вам хранить пароли в текстовом файле? Именно для этого и существуют базы данных. Для доступа к ним вам нужны учетные данные, они не зависят от программы, ими можно легко управлять и обновлять, помечать, что требуется изменение, или отслеживать, были ли у них неправильные предположения и т.д., Чтобы помочь уменьшить вероятность рассылки спама…

5. это просто подсказка о том, как это сделать, если вам нужна система регистрации, которую вы должны иметь возможность добавлять в файл, о чем я уже говорил file_put_contents , и лучшим / безопасным способом было бы создать php-файл, который будет example.com/users.json не приведет ко всем именам пользователей и паролям. также должно храниться вне webroot, есть много соображений, которые делают его слишком широким, чтобы предоставить вам решение для копирования и вставки вместо простого использования базы данных. также никто не собирается голосовать за плохую практику, совсем наоборот