| 課程109:加入網頁存取控制 |
摘要:
在這個課程中,我們使用 header的 WWW-Authenticate 驗證方式,取得使用者名稱與密碼。透過檢查使用者的$PHP_AUTH_USER,$PHP_AUTH_PW全域變數,我們可以知道使用者是否輸入正確的使用者名稱與密碼,再決定是否授權存取頁面。等我們學會了這個技巧之後,再把這個驗證的技巧,整合在之前的資料庫網頁。
|
驗證功能
|
說明:
使用 header 函式傳遞 WWW-Authenticate給瀏覽器時,瀏覽器會顯示一個要求輸入使用者名稱與密碼的對話方塊。當使用者輸入資料時,PHP
就會將使用者所輸入的使用者名稱,放到$PHP_AUTH_USER這個全域變數中,把密碼放到$PHP_AUTH_PW這個全域變數中。之後需要存取控制的網頁,只要檢查,這兩個全域變數,便可以得知,使用者是否輸入正確的使用者名稱與密碼。 |
| 程式碼 |
| 執行程式 |
將驗證功能整合到留言版的網頁
|
說明:
留言版需要整合驗證功能的頁面如下:
- 留言版更新
- 留言版刪除
- 留言版列表
|
| 一、準備工作 |
說明:
將之前108課程所做好的PHP程式,放在另一個新的目錄 guestbook109 之下。然後,撰寫一個 authenticate.php
負責提示及驗證使用者的名稱,其他的程式則以 include()函式,將這個檔案含括在程式中即可。
|
| 複製檔案: |
- 使用putty連線到伺服主機。
- 輸入以下的命令,進入 public_html 目錄:
cd public_html
- 輸入以下的命令,產生新的目錄 guestbook109,並將 guestbook 中所有檔案,複製到guestbook109:
cp -r guestbook guestbook109
|
| 撰寫 authenticate.php |
將下面的PHP程式碼存成 authenticate.php:
<?php if ($PHP_AUTH_USER!="admin" || $PHP_AUTH_PW!="password") {
header( 'WWW-Authenticate: Basic realm="留言版系統管理"' );
echo '存取遭拒.';
exit;
}
?> |
| 二、修改更新留言 |
說明:
在這裡我們只要使用 include()函式,將 authenticate.php 含括在程式中即可。
|
| 程式碼 |
| 執行程式 |
| |
| 三、修改刪除留言 |
說明:
在這裡我們只要使用 include()函式,將 authenticate.php 含括在程式中即可。
|
| 程式碼 |
| 執行程式 |
| |
| 四、修改留言列表 |
說明:
留言列表的要求,不同於更新與刪除留言。一般使用者可以直接存取這個網頁,但是,網頁中的更新與刪除的文字連結,必須在輸入正確使用者名稱和密碼才可以顯示。我們可以使用檢查$PHP_AUTH_USER,以及$PHP_AUTH_PW全域變數的方式,來判斷是否要顯示更新與刪除的連結。
|
| 程式碼 |
| 執行程式 |
| |
| 五、加入登入的網頁 |
說明:
之前的留言列表更改之後,輸入正確使用者名稱及密碼後,可以看到更新與刪除的連結,沒輸入時,則隱藏更新與刪除的連結。
但是,反而造成了另一個問題。就是沒有登入的入口點。所以我們要另作一個
PHP 程式(login.php),作為我們登入的入口。
|
| 程式碼 |
| 執行程式 |
| |