文章簡介
如果網站內有些網頁只希望提供給管理員,那麼便需設置一個密碼認證功能。在 PHP 中製作密碼認證的方法有好幾種,以下介紹較為簡單的 HTTP authentication。
需要 PHP 在 Apache module 下執行才有這功能,而在 IIS 及 PHP 使用 CGI Mode 安裝則沒有這個功能。
HTTP authentication
PHP 內實現 HTTP authentication 的原理是使用 header() 傳送一個 "Authentication Required" 的訊息到訪問者的 browser,然後便會彈出一個 pop up windows 要求使用者輸入使用者名稱及密碼。
當使用者輸入登入資料後,所輸入的使用者名稱及密碼會儲存到 $_SERVER['PHP_AUTH_USER'] 及 $_SERVER['PHP_AUTH_PW'] 兩個變數內。
程式碼範例
以下的程式碼會簡單實現密認證功能,只需將這段程式碼放到需保護的程式開端即可:
01 <?php
02 if($_SERVER['PHP_AUTH_USER'] != "administrator" || $_SERVER['PHP_AUTH_PW'] != "123456"){
03 Header("WWW-Authenticate: Basic realm=\"My Protection\"");
04 Header("HTTP/1.0 401 Unauthorized");
05 echo "請輸入使用者密碼";
06 exit();
07 }
08 ?>
以上例子設定成使用者名稱為 "administrator",而密碼為 "123456"。
注意事項:這種認證方法對加了這段程式碼的檔案生效,並不會對整個目錄起作用。如需對目錄下所有檔案作保護,可使用 .htaccess 這類方法。
====================================================
歡迎轉載,但轉載時請保留此宣告,不得作為商業用途
作者: Sam Tang <admin{at}phpini{dot}com>
來源網站:
http://www.phpdc.com/