亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > 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程序(五)

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

新聞熱點

疑難解答

圖片精選

網友關注

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲欧美中文日韩v在线观看| 国产欧美久久久久久| 国产欧亚日韩视频| 搡老女人一区二区三区视频tv| 欧美俄罗斯乱妇| 久久精品国产成人| 久久精品国产视频| 成人信息集中地欧美| 亚洲综合中文字幕在线| 亚洲色图校园春色| 国色天香2019中文字幕在线观看| 成人av电影天堂| 日韩在线观看高清| 三级精品视频久久久久| 九九精品在线视频| 久久99亚洲精品| 亚洲欧美日韩一区在线| 国产一区二区在线免费| 中文字幕av日韩| 久久久久久久久久久久av| 热re99久久精品国产66热| 日韩欧美中文字幕在线观看| 久久久久免费视频| 97久久伊人激情网| 国产成人+综合亚洲+天堂| 亚洲欧美在线x视频| 91影院在线免费观看视频| 97视频com| 亚洲欧美成人在线| 日韩男女性生活视频| 欧美日本中文字幕| 亚洲天堂av女优| 欧美视频一区二区三区…| 亚洲精品视频播放| 97超碰蝌蚪网人人做人人爽| 国产精品久久久久久久久男| 久久精品国产欧美激情| 福利一区福利二区微拍刺激| 2019中文字幕免费视频| 国产999在线观看| 国产成人精品一区二区| 国产精品99一区| 国产精品999999| 亚洲视频日韩精品| 亚洲人成网在线播放| 久久久免费高清电视剧观看| 日韩中文字幕在线视频| www亚洲欧美| 亚洲午夜av久久乱码| 久久免费成人精品视频| 午夜精品久久久久久99热| 亚洲国产天堂久久综合网| 日本亚洲欧洲色α| 亚洲一区二区三区四区视频| 亚洲片av在线| 韩国日本不卡在线| 日韩精品视频在线| 国产日韩欧美中文在线播放| 久久久精品视频在线观看| 亚洲一级片在线看| 日韩欧美在线免费观看| 69久久夜色精品国产7777| 1769国内精品视频在线播放| 欧美亚洲另类激情另类| 久久综合国产精品台湾中文娱乐网| 精品性高朝久久久久久久| 欧美性69xxxx肥| 国产主播精品在线| 日韩av色综合| 国产日韩欧美一二三区| 亚洲免费av片| 日韩视频一区在线| 欧美一区二区视频97| 国产精品久久久av久久久| 欧美激情久久久久| 国产精品大片wwwwww| 色综合久久久久久中文网| 久久久久久久一区二区三区| 成人两性免费视频| 欧美日韩aaaa| 日韩一区av在线| 亚洲激情成人网| 亚洲综合精品一区二区| 日韩高清有码在线| 久久综合免费视频影院| 97超视频免费观看| 亚洲色图在线观看| 欧美性受xxxx黑人猛交| 久久这里有精品视频| 成人中文字幕在线观看| 91精品综合视频| 51视频国产精品一区二区| 欧美成人午夜影院| 欧美成人精品在线播放| 日韩视频免费看| 日本人成精品视频在线| 91精品国产高清自在线看超| 国产精品高潮视频| 久久人人爽人人爽爽久久| 91九色综合久久| 成人国产精品免费视频| 成人观看高清在线观看免费| 色樱桃影院亚洲精品影院| 伊人久久精品视频| 亚洲人成网7777777国产| 欧美激情一级精品国产| 精品久久久中文| 亚洲国产精品久久久久久| 免费91在线视频| 国产婷婷色综合av蜜臀av| 久久91亚洲精品中文字幕| 欧美激情极品视频| 国产女人精品视频| 亚洲成人在线网| 亚洲综合日韩中文字幕v在线| 国产精品亚洲一区二区三区| 国产精品欧美风情| 亚洲天堂日韩电影| 成人激情在线播放| 精品高清美女精品国产区| 久久精品国产综合| yellow中文字幕久久| 亚洲已满18点击进入在线看片| 久久久久成人精品| 成人国产在线视频| 午夜精品免费视频| 91成人福利在线| 欧美成人中文字幕| 日韩欧美在线观看视频| 中文字幕欧美精品在线| 九九热这里只有精品免费看| 国产欧美一区二区三区视频| 欧美黑人巨大精品一区二区| 亚洲色图偷窥自拍| 日韩性生活视频| 国产精品2018| 免费99精品国产自在在线| 国产精品视频白浆免费视频| 久久视频在线免费观看| 91亚洲国产成人久久精品网站| 日韩av在线天堂网| 97国产真实伦对白精彩视频8| 亚洲第一页在线| 曰本色欧美视频在线| 欧美乱大交做爰xxxⅹ性3| 亚洲国产成人久久| 日韩中文字幕在线视频播放| 国产精品久久久久免费a∨大胸| 中文字幕亚洲天堂| 欧美午夜xxx| 欧美老女人bb| 久久综合国产精品台湾中文娱乐网| 日韩av电影手机在线观看| 91亚洲国产精品| 久久久这里只有精品视频| 久久亚洲私人国产精品va| 亚洲国产成人精品久久| 国产一区二区三区在线播放免费观看| 亚洲男人天天操| 国产不卡一区二区在线播放| 亚洲色图25p| 国产亚洲精品久久久久动| 久热精品在线视频| 成人久久一区二区|