Ответы пользователя по тегу Компьютерные сети
  • Http аутентификация работает неправильно, почему?

    Я думаю, что проблема в том, что в первом случае вы каждый раз посылаете 401 статус, независимо от того, ввёл ли уже пользователь правильные данные или нет. Попробуйте обернуть это во что-то вроде:

    $authenticated = false;
    if (isset($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW'])) {
      // ищем пользователя в базе
      // выставляем $authenticated в true/false в зависимости от того, нашёлся ли пользователь.
    }
    
    if ($authenticated) {
      // показываем страницу аутентифицированному пользователю
    } else {
      header('HTTP/1.1 401 Unauthorized');
      header('WWW-Authenticate:Basic realm="petrocks"');
    
      echo 'Представься, мразь', PHP_EOL;
    }
    Ответ написан
    Комментировать