一般而言,若要從遠方修改伺服器端的網頁,有下列兩種方式:事實上,我們也可以經由 Web 程式的技術,經由瀏覽器來修改遠端的伺服器檔案,請見此範例:
- 經由 telnet 連上伺服器,然後再修改之。
- 經由 ftp 連上伺服器,下載相關檔案並修改後,再經由 ftp 上傳檔案至伺服器。(UltraEdit 就有此內建的功能。)
上述範例的原始檔如下:
在上述範例中,只要使用者按下 F9,或點選某個特定連結,就會開啟密碼認證視窗,若認證成功,即可進行檔案編修。欲瞭解此範例,請各位同學直接開啟此範例並測試修改檔案的功能。
有關密碼認證過程,已在上節說明,在此不再詳述。唯一需要注意的是,由於使用者可以經由「熱鍵」的方式來進行編修功能的啟動,因此在目標網頁(在此例是 editfile.asp)並無法經由 Request.ServerVariables("HTTP_REFERER") 來取得來源網頁(在此例是 example.asp),因此我們必須在 editfile.inc 設定 session("source"),以方便當使用者按下「移除認證」時,視窗能載入來源網頁。
在此範例中,總共牽涉到六個檔案,分別說明如下:
- example.asp
- 此網頁包含了 editfile.inc,所以可以進行經由 Web 的編修。
- editfile.inc
- 此頁包含了「熱鍵」的定義,並設定了 session("source")。任何網頁只要保含此檔案,就具有遠方編修的功能。
- editfile.asp
- 本頁之任務為讀入需要編修的檔案,並以 textarea 的方式呈現在瀏覽器中,以方便使用者編修。(當然,本網頁亦 include 了 auth.inc,以便在開放檔案編修之前,能先進行密碼的認證。)
- auth.inc
- 本頁之任務為檢驗認證資訊是否存在:
任何需要密碼保護之網頁,只需要 include 此檔案,即可達到保護功能。(請注意:在本例中,session("source") 是設定在 edtifile.inc 之中,而不是在 auth.inc 之中。)
- 若存在,則不做任何事。
- 若不存在,則跳出認證視窗(auth.asp),請求輸入密碼,並在原視窗載入來源網頁(此例為 example.asp)。
- auth.asp
- 此頁之目的為進行密碼認證:
- 若通過,則於原視窗開啟被保護之目標網頁(此例為 editfile.asp)
- 若不通過,則請求重新輸入帳號、密碼
- delauth.asp
- 本頁之任務為消除認證資訊(即將變數 session("secret")設定為 False),並載入來源網頁(此例為 example.asp)。
JScript 程式設計與應用:用於伺服器端的 ASP 環境![]()