荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: icefire (懒懒的心懒懒的我), 信区: Program
标  题: [转载] [转寄] 用Perl 语言编写CGI 程序用一例
发信站: BBS 荔园晨风站 (Sun Nov 22 19:16:21 1998), 站内信件

【 以下文字转载自 icefire 的信箱 】
【 原文由 icefire.bbs@melon.gznet.edu.cn 所发表 】
发信人: Anton (庭草无人随意绿), 信区: CGI
标  题: 用Perl 语言编写CGI 程序用一例
发信站: 华南网木棉站 (Wed Nov 18 17:44:01 1998), 转信

北 京 理 工 大 学 计 算 机 科 学 工 程 系      余 波


--------------------------------------------------------------------------------

       公 共 网 关 界 面CGI(Common Gateway Interface) 是Internet 上 常 用 的 动
 态 技 术 之 一 , 利 用CGI 程 序 , 用 户 、 服 务 器 和 外 部 数 据 库 之 间
就 能 进 行 简 单 的 交 互 通 讯 。 比 如 ,CGI 程 序 允 许WWW 客 户 端 的 浏 览
 器 发 送 简 单
的 信 息 给 服 务 器 , 服 务 器 接 到 信 息 并 处 理 之 后 , 可 以 发 送 动 态
 文 本 回 浏 览 器 并 显 示 。
       一 般 的CGI 可 以 用 在 以 下 几 个 方 面:

通 过 一 个HTML 表 格 , 收 集 有 关 自 己 的WWW 站 点 内 容 的 访 问 者 反 馈


在 进 行WEB 查 询 时 , 动 态 地 做 系 统 文 件 的 转 换 。

对Archie 或WAIS 数 据 库 进 行 查 询 , 并 返 回HTML 文 件 格 式 的 结 果 。
       CGI 的 标 准 是 由HTTP 的 主 要 作 者George Phillips 、Tony Sander Ari
Luotonenen 和John Franks 制 定 出 来 的 。
       用 很 多 种 语 言 都 能 写 出CGI 程 序 , 如Perl 语 言 、C 语 言 、TCL 语
 言 、BASIC 语 言 和JAVA 语 言 , 但 是Perl 语 言 是 最 适 合 的 。Perl 是 一 种
 解 释 语 言 , 在1980 年 由Larry Wall 发 明 出 来 ,Perl 专 门 用 于 大 量 的
字 串 、 文
字 和 文 件 的 处 理 , 因 此 提 供 了 清 楚 而 简 明 的 方 法 来 解 决CGI 程 序
 中 经 常 发 生 的 问 题 。

       本 文 通 过 一 个 实 例 介 绍 如 何 用Perl 语 言 进 行CGI 编 程 。 这 是
 一 个Internet 地 址 簿 , 格 式 如 下 图 所 示 。 访 问 的 用 户 可 以 在 表 格
 中 填 写 姓 名 、E-mail 地 址 、WEB 地 址 等 情 况 , 按 下Add to Addressbook
键 之 后 ,
我 的CGI 程 序 会 将 它 加 入 到 一 个 地 址 簿 中 。

       用 户 也 可 以 按 下Display 键 查 看 所 有 的 记 录 , 还 可 以 输 入 关
 键 词 并 按 下Start Search 键 进 行 查 询 。

       这 个 实 例 包 括 三 个 文 件: 浏 览 器 前 端 的HTML 文 件Addbook.htm 、
CGI 程 序 的 源 文 件Addbook.pl 、 储 存 输 入 数 据 的 文 本 文 件Addbook.txt


       以 下Perl 源 程 序 的 代 码 , 名 为Addbook.pl:
       #! /usr/bin/perl
       #perl 编 译 器 所 在 目 录
       # Addbook.txt 所 在 的 绝 对 路 径 , 例 如:
http://209.24.16.160/htmlfile/ricky/AddBook.txt
       # 该 文 件 在Web Server 上 必 须 可 写 。
       $AddBook =" http://209.24.16.160/htmlfile/ricky/AddBook.txt ";
       # 输 出 的WEB 页 面 的 顶 部 。 可 按 个 人 爱 好 进 行 编 辑 。

  sub header {
  print <<"HTML";



  HTML
  }

  #WEB页面的底部。也可按要求进行编辑。
  sub footer {
  print <<"HTML";


  HTML
  }
       # 此 部 分 如 非 专 家 请 不 要 轻 易 修 改 。
  if ($ENV{'REQUEST_METHOD'} eq 'POST')
  {
  read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
  @pairs = split(/&/, $buffer);
  foreach $pair (@pairs)
  {
  ($name, $value) = split(/=/, $pair);
  $value =~ tr/+/ /;
  $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
  $value =~ tr/,/ /;
  $contents{$name} = $value;

  }
  }

  print "Content-type: text/html\n\n";

  if ($contents{'act'} eq "add") {

  &no_name unless $contents{'name'};

  open(BOOK, ">>$AddBook") || &no_open;;
  print BOOK "$contents{'na
  --------------------------------------------
  | 在看得到的地方,我的眼睛和你在一块......
|  | 在看不到你的地方,我的心和你在一块...... |
--------------------------------------------

※ 来源:.华南网木棉站 bbs.gznet.edu.cn.[FROM: 202.116.174.100]
--
※ 转寄:.华南网木棉站 bbs.gznet.edu.cn.[FROM: linux.szu.edu.cn]
--
※ 转载:.BBS 荔园晨风站 bbs.szu.edu.cn.[FROM: 192.168.0.22]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店