PHP – autoryzacja HTTP

  PHP, Webhosting

Uwaga: poniższe instrukcje nie dotyczą sytuacji, gdy korzystasz z autoryzacji za pomocą plików htaccess i htpasswd, ale do przypadku, gdy w PHP używasz zmiennych globalnych PHP_AUTH_USER i PHP_AUTH_PW.

Na naszym webhostingu używamy PHP w trybie FastCGI, gdzie niezbędne nagłówki nie są przekazywane do PHP. Trzeba im trochę pomóc.

1. Na początku pliku www/.htaccess dostępnego na Twoim webhostingu umieść następujący kod:

RewriteEngine on

RewriteEngine on
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]

2. Zmodyfikuj swoją aplikację PHP w taki sposób, że przed każdym punktem kontrolnym logowania  (przed sprawdzeniem zmiennych PHP_AUTH_USER i PHP_AUTH_PW) umieścisz następujące polecenie, które uzupełni brakujące zmienne globalne:

list($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW'])
= explode(':' , base64_decode(substr($_SERVER['HTTP_AUTHORIZATION'], 6)));

Dodatkowe informacje są dostępne pod poniższym linkiem:
HTTP Authentication with PHP running as CGI/SuExec