PHP 製作簡單 HTTP 密碼認證

如果網站內有些網頁只希望提供給管理員,那麼便需設置一個密碼認證功能。在 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’] 兩個變數內。


程式碼範例
以下的程式碼會簡單實現密認證功能,只需將這段程式碼放到需保護的程式開端即可:

以上例子設定成使用者名稱為 “administrator”,而密碼為 “123456”。

注意事項:這種認證方法對加了這段程式碼的檔案生效,並不會對整個目錄起作用。如需對目錄下所有檔案作保護,可使用 .htaccess 這類方法。


Leave a Reply