HTTP authorizációja a php szkriptek segítségével - CGI környezet

Azokon a webhoszting szervereken ahol a php úgy fut mint CGI modul nem lehetséges használni HTTP authorizációt. A következő megoldást lehet használni.

 
  1. mod_rewrite direktíva hozzáadása a .htaccess fájlhoz:

     

    RewriteEngine on
    RewriteCond %{HTTP:Authorization} ^(.*)
    RewriteRule ^(.*) - [E=HTTP_AUTHORIZATION:%1]
    
    
    
  2. PHP szkript megváltoztatása:

    <?php
    
    if ($_SERVER["HTTP_AUTHORIZATION"] != ""){
       $ha = base64_decode( substr($_SERVER["HTTP_AUTHORIZATION"],6) );
       list($_SERVER["PHP_AUTH_USER"], $_SERVER["PHP_AUTH_PW"]) = explode(":", $ha);
       unset($ha);
    }
    
    if (!isset($_SERVER["PHP_AUTH_USER"])) {
        header("WWW-Authenticate: Basic realm="My Realm"");
        header("HTTP/1.0 401 Unauthorized");
        echo "Text to send if user hits Cancel button";
        exit;
    } else {
        echo "<p>Hello {$_SERVER["PHP_AUTH_USER"]}.</p>";
        echo "<p>You entered {$_SERVER["PHP_AUTH_PW"]} as your password.</p>";
    }
    
    ?>

Add Feedback