PHP的HTTP認證機制

航空母艦發表於2016-03-21

PHP的HTTP認證機制因此該功能不適用於 CGI 版本。在 Apache 模組的 PHP 指令碼中,可以用 header() 函式來向客戶端瀏覽器傳送Authentication Required資訊,使其彈出一個使用者名稱/密碼輸入視窗。當使用者輸入使用者名稱和密碼後,包含有 URL 的 PHP 指令碼將會再次和預定義變數 PHP_AUTH_USER、PHP_AUTH_PW 和 AUTH_TYPE 一起被呼叫,這三個變數分別被設定為使用者名稱,密碼和認證型別。預定義變數儲存在 $_SERVER 或者 $HTTP_SERVER_VARS 陣列中。系統僅支援“基本的”認證

define('ADMIN_USERNAME', 'admin'); // Admin Username
define('ADMIN_PASSWORD', 'admin'); // Admin Password

///////////////// Password protect ////////////////////////////////////////////////////////////////
if (!isset($_SERVER['PHP_AUTH_USER']) || !isset($_SERVER['PHP_AUTH_PW']) ||$_SERVER['PHP_AUTH_USER'] != ADMIN_USERNAME || $_SERVER['PHP_AUTH_PW'] != ADMIN_PASSWORD){
    Header("WWW-Authenticate: Basic realm=\"admin Login\"");
    Header("HTTP/1.0 401 Unauthorized");

    echo <<<EOB
				<html><body>
				<h1>Rejected!</h1>
				<big>Wrong Username or Password!</big>
				</body></html>
EOB;
    exit;
}

 

相關文章