Как работает PHP? Если это через Apache mod_cgi, я боюсь, что вы не можете получить информацию об аутентификации вообще. Apache не передаст его приложениям CGI, если вы не скомпилируете его с флагом SECURITY_HOLE_PASS_AUTHORIZATION
. (Является ли это на самом деле дырой в безопасности или нет, зависит от того, имеют ли другие пользователи на вашем сервере более низкие или большие привилегии, чем пользователи вашего веб-сайта.)
Если это IIS CGI, вы должны убедиться, что настроен только «Анонимный» доступ к каталогу, или IIS попытается войти и аутентифицировать учетные данные самостоятельно.
echo "<p>Hello {$_SERVER['PHP_AUTH_USER']}.</p>";
дыра в безопасности HTML-инъекций (хорошо, если это сработало). Используйте htmlspecialchars()
. Чувак, эта страница документации по PHP полна весьма сомнительных советов и кода.
Вы также можете попробовать посмотреть на $_SERVER['HTTP_AUTHORIZATION']
, хотя я подозреваю, что это проблема mod_cgi, и в этом случае ни одна из переменных не будет присутствовать, и вам придется вместо этого прибегнуть к логину на основе cookie. Или перейдите на хост с более современным подходом к хостингу PHP, такой как FastCGI или mod_php.