麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > Delphi > 正文

用Delphi編寫CGI程序(六)

2019-11-18 18:48:58
字體:
來源:轉載
供稿:網友
在 前 面 的 幾 個 章 節 里 , 我 們 完 成 了 CGI 程 序 的 一 般 論 述 。 在 此 , 我 給 出 一 個 簡 單 的 示 范 程 序 作 為 對 以 前 的 內 容 的 總 結 。

 

   要 使 用 這 個 程 序 , 您 需 要 OmniHTTPD 的 最 新 測 試 版 : OmniHTTPD 2.0b1 (beta 1) for Windows 95/NT 。 如 果 您 沒 有 , 可 以 在 這 里 下 載 ( oh20b1.zip) 。

   安 裝 OmniHTTPD 同 第 一 講 中 的 方 法 一 樣 , 這 里 就 不 再 講 了 。 我 在 這 里 只 講 一 講 這 一 版 本 中 的 一 些 設 置 問 題 :

   打 開 OmniHTTPD 的 屬 性 設 置 對 話 框 , 使 用 Web Server Global Setting 按 鈕 , 轉 到 External 頁 , 將 .cgi 的 設 置 刪 除 。 在 未 刪 除 時 , 用 cgi 作 擴 展 名 的 CGI 程 序 是 作 為 Perl 程 序 處 理 的 ; 在 我 們 的 課 程 中 , Perl 語 言 的 CGI 程 序 的 擴 展 名 是 .pl , 而 編 譯 后 的 CGI 程 序 擴 展 名 是 .cgi , 所 以 , 要 將 設 置 作 這 樣 的 修 改 。

   在 這 個 版 本 的 OmniHTTPD 中 , 對 SSI(Server Side Include) 命 令 的 支 持 比 以 前 的 版 本 大 大 加 強 了 , 支 持 include 、 exec 等 命 令 。 在 示 范 程 序 中 , 我 用 到 了 這 些 命 令 。

   您 將 (ex8.zip) 下 載 后 , 里 面 包 含 三 個 文 件 : index.shtml 、 makelog.cpp 和 makelog.exe 。 index.shtml 是 一 個 包 含 SSI 命 令 的 腳 本 , 請 拷 貝 到 c:httpdhtdocs 目 錄 下 ; makelog.exe 是 CGI 程 序 , 請 拷 貝 到 c:httpdcgi-bin 目 錄 下 ; makelog.cpp 是 makelog.exe 的 源 文 件 , 如 果 您 要 修 改 編 譯 的 話 , 必 須 用 32 位 的 編 譯 器 , 如 VC 等 , 否 則 無 法 使 用 。

   除 此 之 外 , 您 需 要 將 OmniHTTPD 中 的 設 置 作 一 個 修 改 : 選 擇 Default Virtual Setting , 在 Server 頁 上 將 Default Index 改 為 index.shtml 。 這 樣 , 當 您 在 瀏 覽 器 中 敲 入 http://localhost 時 , OmniHTTPD 自 動 調 入 index.shtml 。

   再 做 一 個 WEB 文 檔 , 以 index.html 為 文 件 名 存 在 c:httpdhtdocs 目 錄 下 。 您 用 瀏 覽 器 訪 問 localhost 時 , index.shtml 先 調 用 makelog.exe , 存 儲 用 戶 的 訪 問 信 息 , 再 調 用 index.html , 將 其 顯 示 在 瀏 覽 器 中 。 用 戶 的 訪 問 信 息 存 儲 在 c:httpdcgi-bin 目 錄 下 的 userlog 文 件 中 。

   這 個 實 例 用 到 了 CGI 規 范 中 基 本 的 環 境 變 量 和 SSI 技 術 , 請 您 好 好 研 究 一 下 。

   4 、 數 據 庫

   在 CGI 的 應 用 中 , 數 據 庫 方 面 的 應 用 是 最 體 現 CGI 程 序 強 大 功 能 的 。 在 互 聯 網 上 , 數 據 庫 是 非 常 多 的 , 而 這 些 數 據 庫 的 WEB 應 用 的 需 求 也 是 越 來 越 多 ( 無 論 是 來 自 公 司 的 還 是 來 自 用 戶 的 需 求 ) 。 可 以 說 , WEB 本 身 就 是 一 個 巨 大 的 數 據 庫 , 如 何 將 這 些 龐 大 的 數 據 集 合 有 效 的 組 織 起 來 , 在 WEB 上 進 行 發 布 , 是 CGI 和 數 據 庫 系 統 共 同 解 決 的 課 題 。

   如 果 要 對 CGI 和 數 據 庫 的 應 用 進 行 分 類 的 話 , 從 不 同 角 度 有 不 同 的 分 類 方 法 。 例 如 , 按 數 據 庫 的 規 模 可 以 分 成 文 本 數 據 庫 、 本 地 數 據 庫 (Microsoft access 等 ) 和 數 據 庫 服 務 器 (MS SQL Server 、 Informix 等 ) ; 按 CGI 的 處 理 內 容 可 以 分 為 前 端 數 據 庫 CGI 程 序 ( 同 使 用 WEB 瀏 覽 器 的 用 戶 交 互 的 CGI 程 序 ) 和 后 端 數 據 庫 CGI 程 序 ( 同 數 據 庫 交 互 的 CGI 程 序 ) 等 。 選 擇 數 據 庫 的 規 模 通 常 取 決 于 您 要 完 成 的 任 務 的 數 據 量 、 成 本 等 ; 在 編 制 CGI 程 序 時 采 用 前 端 和 后 端 分 開 還 是 結 合 通 常 取 決 于 您 的 數 據 處 理 的 復 雜 程 度 等 。

   通 常 , 如 果 您 的 數 據 集 合 在 幾 兆 字 節 之 內 , 而 且 您 的 數 據 記 錄 之 間 沒 有 復 雜 的 關 系 , 您 可 以 選 擇 用 文 本 文 件 建 立 數 據 庫 , 這 樣 可 以 使 成 本 限 制 在 最 小 , 而 且 文 本 文 件 有 一 個 數 據 庫 管 理 系 統 (DBMS , 即 DataBase Management System) 所 沒 有 的 優 勢 : 如 果 您 的 數 據 發 生 了 錯 誤 , 您 可 以 將 您 的 文 本 文 件 調 入 任 何 一 個 文 本 編 輯 器 進 行 恢 復 , 而 若 是 您 的 數 據 庫 系 統 發 生 了 錯 誤 , 除 非 您 是 一 個 數 據 庫 專 家 , 否 則 很 難 修 復 。

   如 果 您 的 數 據 集 合 非 常 大 , 或 者 您 的 數 據 記 錄 之 間 存 在 著 復 雜 的 關 系 , 則 最 好 選 用 數 據 庫 系 統 。 用 文 本 文 件 實 現 一 個 幾 十 兆 的 數 據 庫 會 使 任 何 一 臺 高 級 的 RISC 服 務 器 不 堪 重 負 。 如 果 您 用 CGI 程 序 處 理 數 據 間 復 雜 的 關 系 , 必 然 會 使 CGI 程 序 的 復 雜 性 加 大 , 占 用 過 多 的 服 務 器 資 源 ; 另 一 方 面 , 利 用 數 據 庫 系 統 的 功 能 可 以 簡 化 CGI 程 序 設 計 的 難 度 , 提 高 開 發 效 率 。

   在 選 擇 數 據 庫 系 統 時 , 您 需 要 從 以 下 幾 個 方 面 進 行 選 擇 : 一 、 操 作 系 統 平 臺 : 您 應 該 選 擇 您 最 熟 悉 的 數 據 庫 系 統 , 也 要 選 擇 您 最 熟 悉 的 操 作 系 統 平 臺 , 只 有 這 樣 , 才 可 以 少 出 錯 誤 。 二 、 價 格 : 您 應 在 各 種 能 完 成 您 的 工 作 的 數 據 庫 系 統 中 選 擇 最 便 宜 的 , 在 這 里 , 我 可 以 告 訴 大 家 一 個 免 費 的 數 據 庫 系 統 , 叫 MiniSQL , 它 必 須 在 UNIX 或 linux 平 臺 上 運 行 , 我 還 不 知 道 哪 里 有 Windows 平 臺 的 免 費 數 據 庫 系 統 , 如 果 誰 知 道 , 請 告 訴 我 , 我 會 在 今 后 的 課 程 中 告 訴 大 家 的 。

   我 們 的 課 程 是 講 述 用 Delphi 開 發 CGI 程 序 的 , 而 Delphi 中 提 供 了 Interbase Server 數 據 庫 系 統 , 因 此 , 我 在 這 里 將 主 要 講 述 采 用 數 據 庫 系 統 的 CGI 程 序 開 發 。 同 時 , 由 于 數 據 庫 系 統 減 輕 了 大 量 的 編 碼 工 作 , 我 采 用 前 端 CGI 和 后 端 CGI 合 二 為 一 的 方 式 , 在 一 個 CGI 程 序 中 就 完 成 用 戶 輸 入 處 理 和 數 據 庫 操 作 。 但 在 其 他 的 系 統 平 臺 上 , 也 許 這 種 方 式 會 不 使 用 , 請 各 位 讀 者 按 前 面 的 討 論 自 己 斟 酌 。

   在 這 里 , 我 要 附 帶 說 明 一 下 幾 種 不 同 的 CGI 及 其 在 我 們 的 OmniHTTPD 中 的 使 用 差 別 :

   Standard CGI : 標 準 CGI , 必 須 放 置 在 /cgi-bin/ 設 置 的 目 錄 下 , 可 以 在 OmniHTTPD 運 行 時 隨 時 修 改 。

   Win CGI : 應 用 在 Windows 系 統 中 的 CGI , 必 須 放 置 在 /cgi-win/ 設 置 的 目 錄 下 。 此 CGI 應 用 INI 文 件 獲 取 用 戶 端 瀏 覽 器 的 請 求 , 而 不 是 使 用 環 境 變 量 或 標 準 輸 入 。 我 們 一 般 不 使 用 這 種 CGI 。

   ISAPI : Microsoft 公 司 提 出 的 一 種 應 用 動 態 鏈 接 庫 的 CGI 規 范 。

   NSAPI : Netscape 公 司 提 出 的 一 種 應 用 動 態 鏈 接 庫 的 CGI 規 范 。

   這 幾 種 CGI 規 范 各 有 特 點 : 其 中 Standard CGI 可 以 使 用 可 執 行 程 序 或 Perl 等 腳 本 語 言 編 寫 , 但 效 率 低 , 占 用 資 源 多 , 每 一 個 CGI 請 求 就 會 有 一 個 CGI 程 序 的 實 例 在 服 務 器 中 運 行 。 Win CGI 的 特 點 同 Stardand CGI 相 同 。 ISAPI 和 NSAPI 效 率 高 , 常 駐 內 存 , 而 且 無 論 有 多 少 個 CGI 請 求 , 在 服 務 器 中 只 有 一 個 實 例 在 運 行 , 僅 僅 是 這 個 實 例 對 應 的 數 據 集 合 不 同 ; 但 這 種 CGI 不 易 調 試 , 因 為 它 必 須 在 WEB 服 務 器 軟 件 關 閉 時 才 可 以 進 行 更 新 。

   在 下 一 講 中 , 我 將 給 出 一 個 White Page 的 示 范 程 序 。 White Page 是 一 個 電 子 郵 件 地 址 的 清 單 , 您 可 以 讓 用 戶 通 過 WEB 瀏 覽 器 對 這 個 清 單 進 行 查 詢 、 編 輯 、 新 增 和 刪 除 等 操 作 。 在 這 一 講 中 , 我 給 出 的 示 范 程 序 僅 僅 是 查 詢 操 作 , 其 他 的 操 作 將 在 以 后 的 課 程 中 講 述 。

   這 個 示 范 程 序 建 立 在 Borland Interbase Server 數 據 庫 上 , 用 Delphi 開 發 。 在 開 發 中 , 我 選 擇 的 是 Standard CGI , 因 為 這 樣 容 易 調 試 。

   我 們 的 程 序 使 用 Stardand CGI 進 行 編 寫 , 可 以 方 便 的 調 試 。 等 調 試 成 功 后 , 在 Delphi 中 可 以 很 方 便 的 改 成 ISAPI/NSAPI , 僅 僅 是 一 個 語 句 ( 怎 么 樣 , Delphi 很 不 錯 吧 ! ) 。

上一篇:Delphi開發WEBMAIL程序

下一篇:用Delphi編寫CGI程序(五)

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
學習交流
熱門圖片

新聞熱點

疑難解答

圖片精選

網友關注

主站蜘蛛池模板: 5a级毛片| 久久狂草| 中文有码一区二区 | 欧美性猛交xxx乱大交3蜜桃 | 男人的天堂色偷偷 | 一及毛片视频 | 免费的性生活视频 | 毛片在线视频在线播放 | 天天舔天天插 | 一级做a爱片毛片免费 | 精国产品一区二区三区四季综 | 精品国产99久久久久久宅男i | 日韩av电影在线观看 | gogo全球大胆高清人露出91 | 操操操日日日干干干 | 久久精品视频2 | 欧美成人做爰高潮片免费视频 | 国产免费视频在线 | 国产精品99精品 | 国产午夜精品久久久久 | 中文日韩欧美 | 亚洲国产精品一区二区久久 | 色婷婷一区二区三区 | 精品国产精品久久 | 少妇一级淫片免费看 | 欧美成人一区二区三区 | 日韩剧情片 | 网站毛片| 日韩视频一区在线 | 亚洲va久久久噜噜噜久久男同 | 在线a视频 | 欧美大胆xxxx肉体摄影 | 免费黄色大片在线观看 | 国产一区二区三区在线免费 | 久久久www成人免费精品 | 成人午夜一区二区 | 成年人免费视频播放 | 特级毛片免费 | 激情视频导航 | 成年人免费视频播放 | 天天透天天狠天天爱综合97 |