HTTP-юСРЕМРХТХЙЮЖХЪ Б PHP БНГЛНФМЮ РНКЭЙН Б РНЛ ЯКСВЮЕ, ЙНЦДЮ НМ БШОНКМЪЕРЯЪ ЙЮЙ ЛНДСКЭ БЕА-ЯЕПБЕПЮ Apache, Х, ЯННРБЕРЯРБЕММН, МЕДНЯРСОМЮ ДКЪ CGI-БЕПЯХХ. бЮЬ ЯЙПХОР ЛНФЕР ХЯОНКЭГНБЮРЭ ТСМЙЖХЧ header() ДКЪ РНЦН, ВРНАШ НРОПЮБХРЭ АПЮСГЕПС ЙКХЕМРЮ ЯННАЫЕМХЕ "Authentication Required", ВРН Б ЯБНЧ НВЕПЕДЭ ОПХБЕДЕР Й ОНЪБКЕМХЧ ДХЮКНЦНБНЦН НЙМЮ ДКЪ ББНДЮ ХЛЕМХ ОНКЭГНБЮРЕКЪ Х ОЮПНКЪ. оНЯКЕ РНЦН ЙЮЙ ЙКХЕМР ББЕК ЯБНЕ ХЛЪ Х ОЮПНКЭ, ЯЙПХОР АСДЕР БШГБЮМ ОНБРНПМН, МН СФЕ Я ОПЕДНОПЕДЕКЕММШЛХ ОЕПЕЛЕММШЛХ PHP_AUTH_USER, PHP_AUTH_PW Х AUTH_TYPE, ЙНРНПШЕ ЯННРБЕРЯРБЕММН ЯНДЕПФЮР ХЛЪ ОНКЭГНБЮРЕКЪ, ОЮПНКЭ Х РХО ЮСРЕМРХТХЙЮЖХХ. щРХ ОЕПЕЛЕММШЕ ЛНЦСР АШРЭ МЮИДЕМШ Б ЛЮЯЯХБЕ $_SERVER Х $HTTP_SERVER_VARS. б МЮЯРНЪЫЕЕ БПЕЛЪ ОНДДЕПФХБЮЕРЯЪ РНКЭЙН "Basic"-ЮСРЕМРХТХЙЮЖХЪ. рЮЙФЕ БШ ЛНФЕРЕ НГМЮЙНЛХРЯЪ Я АНКЕЕ ДЕРЮКЭМШЛ НОХЯЮМХЕЛ ТСМЙЖХХ header().
гЮЛЕВЮМХЕ ЙЮЯЮРЕКЭМН БЕПЯХХ PHP: CСОЕПЦКНАЮКЭМШЕ ОЕПЕЛЕММШЕ, РЮЙХЕ ЙЮЙ $_SERVER, ДНЯРСОМШ, МЮВХМЮЪ Я 4.1.0. лЮЯЯХБ $HTTP_SERVER_VARS ДНЯРСОЕМ Б PHP 3 Х БШЬЕ.
оПХЛЕП ТПЮЦЛЕМРЮ ЯЙПХОРЮ, ЙНРНПШИ БШМСФДЮЕР ЙКХЕМРЮ ЮБРНПХГХПНБЮРЭЯЪ ДКЪ ОПНЯЛНРПЮ ЯРПЮМХЖШ:
гЮЛЕВЮМХЕ ЙЮЯЮРЕКЭМН ЯНБЛЕЯРХЛНЯРХ: аСДЭРЕ НЯНАЕММН БМХЛЮРЕКЭМШ ОПХ СЙЮГЮМХХ HTTP-ГЮЦНКНБЙНБ. дКЪ РНЦН, ВРНАШ ЦЮПЮМРХПНБЮРЭ ЛЮЙЯХЛЮКЭМСЧ ЯНБЛЕЯРХЛНЯРЭ Я МЮХАНКЭЬХЛ ЙНКХВЕЯРБНЛ ПЮГКХВМШУ ЙКХЕМРНБ, ЯКНБН "Basic" ДНКФМН АШРЭ МЮОХЯЮМН Я АНКЭЬНИ АСЙБШ "B", ПЕЦХНМ (realm) ДНКФЕМ АШРЭ БГЪР Б ДБНИМШИ (МЕ НДХМЮПМШЕ!) ЙЮБШВЙХ, Х ПНБМН НДХМ ОПНАЕК ДНКФЕМ ОПЕДЬЕЯРБНБЮРЭ ЙНДС 401 Б ГЮЦНКНБЙЕ HTTP/1.0 401.
бЛЕЯРН ОПНЯРНЦН НРНАПЮФЕМХЪ МЮ ЩЙПЮМЕ ОЕПЕЛЕММШУ PHP_AUTH_USER Х PHP_AUTH_PW, БЮЛ, БНГЛНФМН, ОНМЮДНАХРЯЪ ОПНБЕПХРЭ ХУ ЙНППЕЙРМНЯРЭ. хЯОНКЭГСИРЕ ДКЪ ЩРНЦН ГЮОПНЯ Й АЮГЕ ДЮММШУ ХКХ ОНХЯЙ ОНКЭГНБЮРЕКЪ Б dbm-ТЮИКЕ.
бШ ЛНФЕРЕ ОПНМЮАКЧДЮРЭ НЯНАЕММНЯРХ ПЮАНРШ АПЮСГЕПЮ Internet Explorer. нМ НВЕМЭ РПЕАНБЮРЕКЕМ Й ОЮПЮЛЕРПС ОЕПЕДЮБЮЕЛШУ ГЮЦНКНБЙНБ. сЙЮГЮМХЕ ГЮЦНКНБЙЮ WWW-Authenticate ОЕПЕД НРОПЮБЙНИ ЯРЮРСЯЮ HTTP/1.0 401 ЪБКЪЕРЯЪ МЕАНКЭЬНИ УХРПНЯРЭЧ.
мЮВХМЮЪ Я PHP 4.3.0, ДКЪ РНЦН, ВРНАШ ОПЕДНРБПЮРХРЭ МЮОХЯЮМХЕ ЙЕЛ-КХАН ЯЙПХОРЮ, ПЮЯЙПШБЮЧЫЕЦН ОЮПНКЭ Й ЯРПЮМХЖЕ, ЙНРНПЮЪ ХЯОНКЭГСЕР БМЕЬМЧЧ ЮСРЕМРХТХЙЮЖХЧ, ОЕПЕЛЕММШЕ PHP_AUTH МЕ СЯРЮМЮБКХБЮЧРЯЪ Б ЯКСВЮЕ, ЕЯКХ ДЮММЮЪ ЯРПЮМХЖЮ ХЯОНКЭГСЕР БМЕЬМЧЧ ЮСРЕМРХТХЙЮЖХЧ Х СЯРЮМНБКЕМ safe mode. мЕЯЛНРПЪ МЮ ЩРН, ОЕПЕЛЕММЮЪ REMOTE_USER ЛНФЕР ХЯОНКЭГНБЮРЭЯЪ ДКЪ ЮСРЕМРХТХЙЮЖХХ ОНКЭГНБЮРЕКЪ, ОПНЬЕДЬЕЦН БМЕЬМЧЧ ЮСРЕМРХТХЙЮЖХЧ. рЮЙХЛ НАПЮГНЛ, БШ БЯЕЦДЮ ЛНФЕРЕ БНЯОНКЭГНБЮРЭЯЪ ОЕПЕЛЕММНИ $_SERVER['REMOTE_USER'].
гЮЛЕВЮМХЕ ЙЮЯЮРЕКЭМН ЙНМТХЦСПЮЖХХ: PHP ХЯОНКЭГСЕР СЙЮГЮМХЕ ДХПЕЙРХБШ AuthType ДКЪ СЙЮГЮМХЪ РНЦН, ХЯОНКЭГСЕРЯЪ БМЕЬМЪЪ ЮСРЕМРХТХЙЮЖХЪ ХКХ МЕР.
яКЕДСЕР ГЮЛЕРХРЭ, ВРН БЯЕ БШЬЕЯЙЮГЮММНЕ МЕ ОПЕДНРБПЮЫЮЕР ОНУХЫЕМХЪ ОЮПНКЕИ Й ЯРПЮМХЖЮЛ, РПЕАСЧЫХЛ ЮБРНПХГЮЖХЧ, ЙЕЛ-КХАН, ЙРН ЙНМРПНКХПСЕР ЯРПЮМХЖШ АЕГ ЮБРНПХГЮЖХХ, ПЮЯОНКНФЕММШЕ МЮ РНЛ ФЕ ЯЕПБЕПЕ.
х Netscape Navigator Х Internet Explorer НВХЫЮЧР ЙЕЬ ЮСРЕМРХТХЙЮЖХХ РЕЙСЫЕЦН НЙМЮ ДКЪ ГЮДЮММНЦН ПЕЦХНМЮ (realm) ОПХ ОНКСВЕМХХ НР ЯЕПБЕПЮ. щРН ЛНФЕР ХЯОНКЭГНБЮРЭЯЪ ДКЪ ПЕЮКХГЮЖХХ ОПХМСДХРЕКЭМНЦН БШУНДЮ ОНКЭГНБЮРЕКЪ Х ОНБРНПМНЦН НРНАПЮФЕМХЪ ДХЮКНЦНБНЦН НЙМЮ ДКЪ ББНДЮ ХЛЕМХ ОНКЭГНБЮРЕКЪ Х ОЮПНКЪ. мЕЙНРНПШЕ ПЮГПЮАНРВХЙХ ХЯОНКЭГСЧР ЩРН ДКЪ НЦПЮМХВЕМХЪ ЮБРНПХГЮЖХХ ОН БПЕЛЕМХ ХКХ ДКЪ ОПЕДНЯРЮБКЕМХЪ ЙМНОЙХ "бШУНД".
Пример 16-2. оПХЛЕП HTTP-ЮСРЕМРХТХЙЮЖХХ Я ОПХМСДХРЕКЭМШЛ ББНДНЛ МНБНИ ОЮПШ КНЦХМ/ОЮПНКЭ
|
щРН ОНБЕДЕМХЕ МЕ ПЕЦКЮЛЕМРХПСЕРЯЪ ЯРЮМДЮПРЮЛХ HTTP Basic-ЮСРЕМРХТХЙЮЖХХ, ЯКЕДНБЮРЕКЭМН, БШ МЕ ДНКФМШ ГЮБХЯЕРЭ НР ЩРНЦН. йЮЙ ОНЙЮГЮКХ РЕЯРШ, АПЮСГЕП Lynx МЕ НВХЫЮЕР ЙЕЬ ЮБРНПХГЮЖХХ ОПХ ОНКСВЕМХХ НР ЯЕПБЕПЮ ЯРЮРСЯЮ 401, Х, МЮФЮБ ОНЯКЕДНБЮРЕКЭМН "Back", Ю ГЮРЕЛ "Forward" БНГЛНФМН НРЙПШРЭ РЮЙСЧ ЯРПЮМХЖС, ОПХ СЯКНБХХ, ВРН РПЕАСЕЛШЕ ЮРПХАСРШ ЮБРНПХЮГЮЖХХ МЕ ХГЛЕМХКХЯЭ. нДМЮЙН, ОНКЭГНБЮРЕКЭ ЛНФЕР МЮФЮРЭ ЙКЮБХЬС '_' ДКЪ НВХЯРЙХ ЙЕЬЮ ЮСРЕМРХТХЙЮЖХХ.
рЮЙФЕ ЯКЕДСЕР ГЮЛЕРХРЭ, ВРН ДН БЕПЯХХ PHP 4.3.3, HTTP-ЮСРЕМРХТХЙЮЖХЪ МЕ ПЮАНРЮКЮ МЮ ЯЕПБЕПЮУ ОНД СОПЮБКЕМХЕЛ Microsoft IIS, ЕЯКХ PHP АШК СЯРЮМНБКЕМ ЙЮЙ CGI-ЛНДСКЭ, Б ЯХКС МЕЙНРНПШУ НЦПЮМХВЕМХИ IIS. дКЪ РНЦН, ВРНАШ ДНАХРЭЯЪ ЙНППЕЙРМНИ ПЮАНРШ Б PHP 4.3.3+, БШ ДНКФМШ НРПЕДЮЙРХПНБЮРЭ ЙНМТХЦСПЮЖХНММСЧ МЮЯРПНИЙС IIS ОНД МЮГБЮМХЕЛ "Directory Security". ыЕКЙМХРЕ МЮ МЮДОХЯХ "Edit" Х СЯРЮМНБХРЕ НОЖХЧ "Anonymous Access", БЯЕ НЯРЮКЭМШЕ ОНКЪ ДНКФМШ НЯРЮРЭЯЪ МЕНРЛЕВЕММШЛХ.
еЫЕ НДМН НЦПЮМХВЕМХЕ, ЕЯКХ БШ ХЯОНКЭГСЕРЕ IIS ОНЯПЕДЯРБНЛ ISAPI: ОЕПЕЛЕММШЕ PHP_AUTH_* МЕ НОПЕДЕКЕМШ, МН Б РН ФЕ БПЕЛЪ ДНЯРСОМЮ ОЕПЕЛЕММЮЪ HTTP_AUTHORIZATION. оПХЛЕП ЙНДЮ, ЙНРНПШИ БШ ЛНЦКХ АШ ХЯОНКЭГНБЮРЭ: list($user, $pw) = explode(':', base64_decode(substr($_SERVER['HTTP_AUTHORIZATION'], 6)));
гЮЛЕВЮМХЕ ЙЮЯЮРЕКЭМН IIS:: дКЪ РНЦН, ВРНАШ HTTP-ЮСРЕМРХТХЙЮЖХЪ ЙНППЕЙРМН ПЮАНРЮКЮ Б IIS, Б ЙНМТХЦСПЮЖХХ PHP НОЖХЪ cgi.rfc2616_headers ДНКФМЮ АШРЭ СЯРЮМНБКЕМЮ ГМЮВЕМХЕЛ 0 (ГМЮВЕМХЕ ОН СЛНКВЮМХЧ).
Замечание: б ЯКСВЮЕ, ЕЯКХ ХЯОНКЭГСЕРЯЪ ГЮЫХЫЕММШИ ПЕФХЛ, UID РЕЙСЫЕЦН ЯЙПХОРЮ АСДЕР ДНАЮБКЕМ Б realm-ВЮЯРЭ ГЮЦНКНБЙЮ WWW-Authenticate.
Пред. | Начало | След. |
нРКХВХРЕКЭМШЕ НЯНАЕММНЯРХ | Уровень выше | Cookies |
HIVE: All information for read only. Please respect copyright! |