【旗標技術通訊電子報】第84期 2000.11.25 2000 台北資訊月 即將展開 旗標新書全面八折 刷卡不加價 時間--12/1(五)中午~12/10(日) 免費入場參觀 旗標攤位--台北世貿 B 區 資訊文化街 學習不忘吃喝玩樂 買書也有意想不到的好康喔!! * 來就送 Office 2000 便條紙 * 買書即送 D&D KTV 免費歡唱1小時折價券 (99元除外) * 滿 700 元再送必勝客行家優惠卡或 D&D KTV 300 元禮券 (2選1) * 憑大專教師證還可兌換便條紙夾座 * 99 元超低特價書 先搶先贏 數量有限 送完為止 本期訊息 ================================================================ ※本期書摘:網頁伺服端的加強工具 ※下期書摘:網頁使用端的加強工具 ================================================================ ※本週新書: SQL Server 2000 管理實務 680元 深入 Linux 建構與管理--第二版 720元 Windows Me Internet 上網實務 350元 PCDIY PartitionMagic 6 中文版玩家實戰 320元 **************************************************************** ※本期書摘:網頁伺服端的加強工具 **************************************************************** CGI 簡介 如果您常逛 WWW 站, 也許逛著逛著就來到某個「網路線上購物」的 WWW 站。在此您只填寫好產品訂購單, 便能在網路上直接訂購所需的產品。這 個功能對於使用者來說自然是很方便, 而我們的網頁如果要有類似的功能 , 就必須在 WWW 伺服端處理這些產品訂購單。 最常用的表單處理方式就是利用預先寫好的 CGI 程式了。其實 CGI (Common Gateway Interface) 由其名稱所示, 它只是一個介面而已, 它所 扮演的只是 WWW 伺服器與外部的程式之間溝通的介面, 至於這個被 WWW 伺服器所呼叫的程式可以是常見的 C 語言、近來網路上相當流行的 Perl 程式、UNIX 系統的 Shell Script、甚至是 Windows 的 Visual Basic ( 只要 WWW 伺服器是在 Windows 環境下執行) 都可以, 只要它能接收 WWW 伺服器透過 CGI 介面傳過來的資料就可以了。只是為了方便起見, 我們都 稱之為 CGI 程式, 但不要誤以為它是用 "CGI" 語言所寫的程式呦。 前面已說過 CGI 只是一個介面而已, 至於要用來處理表單資料的程式則和 一般的程式沒什麼不同。從使用者在表單中填妥資料, 並送出資料, 到 CGI 程式做出回應的過程大致如下: 在 Server 端用來處理表單的程式基本上是和一般的程式沒有什麼兩樣, 只 要在輸入及輸出部分能符合 CGI 界面的要求即可。 當然了, 以上所示只是一般性的原則而已, 並不是所有的 CGI 程式都包含 這幾個部分, 因為並非所有的 CGI 程式都是用來處理表單的。像常見的 Counter 程式, 因為它是用來計算有多少訪客來光臨你的首頁, 所以此時就 不須要什麼處理輸入資料的過程, 它只直接累計人數, 並將結果輸出 (文字 或圖形) 即可。 用什麼語言來寫 CGI 程式 基本上這個問題的答案是因個人喜好而定, 不過有個外在因素就是需視您的 作業環境而定, 例如在 UNIX 中常用的有 Schell Script、Perl、及 C 等 各式各樣的語言, 至於在 Windows 的 WWW 主機上, 就有人用 Visual Basic 甚至老牌的 Clipper 來撰寫 CGI 程式。所以如果您正打算學習某一種語言 來寫 CGI 程式的話, 要先弄清楚您的網頁是放在什麼樣的主機上, 再考慮 該環境下有什麼樣易學、易用、功能又完整的語言可使用。 主機提供的文件資訊 -- SSI 有時候您可能想將一些文件本身的資訊, 例如文件最後更改的日期, 或是一 些伺服器上的資訊, 例如使用者讀取此文件的時間, 顯示在文件之中。對於 前者, 您可能會想說每次更新檔案時, 就將當時的時間加到文件之中, 不過 這樣對時常修改的文件來說, 似乎太麻煩了。對於第二種情況, 可能需要自 己寫一些程式來達成了, 這對一般製作 HTML 文件的人, 也是不怎麼方便。 不過現在這些問題都可藉著 Service Side Include (SSI) 功能來完成, SSI 或可稱之為『伺服器內含資訊』, 也就是在文件中加入各種 SSI 的標籤, 當文件被來自地球另一端的使用者讀取時, WWW 伺服器就會將這些標籤所指 定的資訊 (例如前面提到的檔案更新日期、當地時間) 加到文件之中, 讓使 用者能看到這些動態產生的資訊。更進一步的甚至可做一些過去需要 CGI 來 做的工作, 省下文件製作者自己寫 CGI 程式的困擾。 SSI 的用法與運作方式 支援 SSI 的 WWW 伺服主機運作方式是當某份文件要送到使用者的瀏覽器時, 主機就先掃描文件中是否有 SSI 的指令, 有的話, 依該指令的指示, 將適 當的資料放入文件中。 一般而言, 為了減輕主機的負擔, 避免所有文件 (包括沒有使用 SSI 的文 件) 都要掃描, 所以目前只有副檔名為 *.shtml(或 *.html-ssi) 的檔案才 會去掃描, 並將資料正確地代入, 若仍用 .html 為副檔名, 即使文件中有 SSI 的記號, 也不能發揮作用。 相對於撰寫 CGI 程式的麻煩, SSI 可說是簡單多了, SSI 的指令就直接寫 在 HTML 文件檔內, 格式如下: "" ? 這不是一組註解標籤嗎? 怎麼將 SSI 指令標籤放入一 組註解標籤內呢? 別急, 這是有道理的。 有支援 SSI 功能的 WWW 伺服主機, 在文件要傳給使用者的瀏覽器前, 會先 掃描這份文件, 將文件中的 SSI 指令代換成其所代表的資訊, 然後再傳給 使用者。在使用者瀏覽器上自然是看正確的資訊。 若不巧 WWW 伺服主機尚不支援 SSI 功能, 這份含有 SSI 指令的文件原封 不動地傳給使用者的瀏覽器後, 所有的 SSI 指令也會被瀏覽器解釋成 "註 解", 避免發生不可預期的錯誤。 LiveWire 簡介 雖然 CGI 程式大大地加強了與使用者之間的互動, 然而不同的 WWW 伺服器 需要不同的程式語言、編譯器來撰寫服務程式, 使得同一個伺服端服務程式 無法通用於所有的 WWW 伺服器 (因為機器、作業系統的不同)。 使用 LiveWire 可以解決這個煩人的問題。操作 LiveWire 的方法有點類似 使用端的 JavaScript 語言, 只要伺服器有支援 LiveWire, 就能執行您寫的 LiveWire 服務巨集。只是目前僅 Netscape 所推出的伺服器有支援 LiveWire , 所以使用者有限。 ASP 簡介 網景有 LiveWire, 微軟也不甘示弱地推出了 ASP (Active Server Pages) 這 個伺服端強化套件來打對台 (IIS 3.0 開始支援 ASP)。有趣的是, 要使用微 軟的 ASP, 除了可以使用 VBScript 當作 ASP 的描述語言外, 用 JavaScript 也成。 ****************************************************************** 以上內容摘自『JavaScript 最新網頁製作』 邱芳信‧施威銘研究室 著 書號:F8531 定價:390 元 ****************************************************************** 想索取前幾期的電子報內容請至旗標網站下載 http://www.flag.com.tw/url/ 或在易達網也有可以下載喔 http://lib.edirect168.com/enews/enews.asp?CH=87 本電子報內容未經授權請勿轉載 版權所有人:旗標出版股份有限公司 好書能增進知識、提高學習效率 卓越的品質是旗標的信念與堅持 http://www.flag.com.tw ═<易達網電子報發報中心>═══════════════════ ˙欲訂閱或取消易達網電子報: http://www.edirect168.com/enewsv2/ ˙收報、退報有問題,請洽易達網客服信箱: mailto:cs@service.edirect168.com ˙歡迎申請易達網免費電子信箱: http://www.edirect168.com ˙易達網電子報發報中心: mailto:news@service.edirect168.com ˙您想要登廣告: http://www.edirect168.com/html/ad.htm ˙本電子報文章與其相關連結由電子報報主提供,易達網負責發送。 ════════════════ 作自己的媒體,唱自己的歌 ══ |