PHP 的 HTTP 認證機制僅在 PHP 以 Apache 模塊方式運行時才有效,因此該功能不適用于 CGI 版本,在 Apache 模塊的 PHP 腳本中,可以用 header() 函數來向客戶端瀏覽器發送“Authentication Required”信息,使其彈出一個用戶名/密碼輸入窗口,當用戶輸入用戶名和密碼后,包含有 URL 的 PHP 腳本將會再次和預定義變量 PHP_AUTH_USER、PHP_AUTH_PW 和 AUTH_TYPE 一起被調用,這三個變量分別被設定為用戶名,密碼和認證類型,預定義變量保存在 $_SERVER 或者 $HTTP_SERVER_VARS 數組中,系統僅支持“基本的”認證.
php apache PHP_AUTH_USER用戶登錄的方法實例代碼如下:
- <?php
- $authorized = FALSE;
- if (isset($_SERVER['PHP_AUTH_USER']) && isset($_SERVER['PHP_AUTH_PW'])) {
- $authFile = file("./password.txt");
- foreach ($authFile as $login) {
- list($username, $password) = explode(":", $login);
- $password = trim($password);
- if (($username == $_SERVER['PHP_AUTH_USER']) && ($password == md5($_SERVER['PHP_AUTH_PW']))) {
- $authorized = TRUE;
- break;
- }
- }
- }
- // If not authorized, display authentication prompt or 401 error
- if (! $authorized) {
- header('WWW-Authenticate: Basic Realm="Secret Stash"');
- header('HTTP/1.0 401 Unauthorized');
- print('You must provide the proper credentials!');
- exit;
- }
- ?>
<!-- password.txt
joe:60d99e58d66a5e0f4f89ec3ddd1d9a80
-->
新聞熱點
疑難解答