PHP_AUTH_USER и REMOTE_USER

Фанат

oncle terrible
Команда форума
PHP_AUTH_USER и REMOTE_USER

Часто на форуме встречаются вопросы, где описывается такая ситуация:
Если использовалась апачевская авторизация, то в REMOTE_USER, которую нам выставил апач, мы имеем имя юзера, а ни PHP_AUTH_USER, ни PHP_AUTH_PW у нас нет вообще. Причем, я точно и сам сталкивался с этим.
А, почему, собственно?
Браузер прислал заголовок Authorisation: Basic
Откуда пыху знать - кто запросил её? Он сам, или апач?
Если он у нас такой весь из себя stateless?

Я, честно говоря, затрудняюсь даже с предположениями.

Сейчас, на 4.3.3 воспроизвести не удалось - имеем оба варианта. Но ведь было же? или у меня глюки?

И у них - тоже глюки?
http://phpclub.ru/talk/showthread.php?s=&threadid=38592
http://phpclub.ru/talk/showthread.php?s=&threadid=33232
 

Profic

just Profic (PHP5 BetaTeam)
Фанат
As of PHP 4.3.0, in order to prevent someone from writing a script which reveals the password for a page that was authenticated through a traditional external mechanism, the PHP_AUTH variables will not be set if external authentication is enabled for that particular page and safe mode is enabled. Regardless, REMOTE_USER can be used to identify the externally-authenticated user. So, you can use $_SERVER['REMOTE_USER'].
(c) [m]features.http-auth[/m]

ЗЫ. Там же указано откуда PHP узнает кто запросил авторизацию
 

Profic

just Profic (PHP5 BetaTeam)
Следующий абзац за сцитированным мной
Configuration Note: PHP uses the presence of an AuthType directive to determine whether external authentication is in effect.
Правда для меня остается загадкой эта фраза, но, видимо, Апач хранит свой конфиг внутри в таком виде, что можно определить есть ли в нем эта самая директива AuthType
 
Сверху