网站建设| 数据库类| 图形图象| 程序设计| 现代办公| 操作系统| 考试认证| 网络技术| 软件工程| 电脑相关| 文学作品
网站开发| 网页制作| 操作系统| 图象图形| 考试认证| 数据库类| 程序设计| 硬件技术| 现代办公| 网络技术| 笑话频道
 
您的位置: 电脑书库首页-> 电脑文摘-> 网站开发-> CGI/PERL-> Perl CGI 程式写作常问问题集(一)

Perl CGI 程式写作常问问题集(一)
作者:佚名 来源:InterNet 加入时间:2005-3-30
相关文章
  • Perl CGI 程式写作常问问题集(六)
  • Perl CGI 程式写作常问问题集(五)
  • Perl CGI 程式写作常问问题集(四)
  • Perl CGI程式写作常问问题集(三)
  • 中文版Perl CGI程式写作常问问题集(二)
  • 相关书籍:
    This document, and all its parts, are Copyright (c) 1996,
    Shishir Gundavaram and Tom Christiansen. All rights
    reservered. Permisson to distribute this collection, in part
    or full, via electronic means (emailed, posted or archived)
    or printed copy are granted providing that no charges are
    involved, reasonable attempt is made to use the most current
    version, and all credits and copyright notices are retained.
    Requests for other distribution rights, including
    incorporation in commercial products, such as books,
    magazine articles, or CD-ROMs should be made to either of
    the authors.

    本文件著作权属於 Shishir Gundavaram 及 Tom Christiansen 所
    有,Copyright (C) 1996。在不涉及收费营利、尽可能地使用最新
    版,及所有著作权告示保持完整的情况下,作者允许任何人透过电
    子形式(电子邮件、讨论群布告,或存放),或印表方式对本文件
    作完整或部份发行。如欲将本文件作其他方式发行,包括将本文件
    附加於商业产品,诸如书籍、杂志文章,或光碟等之中,必须事先对
    二位作者其中一人提出请求,以徵得许可授权。

    本中译版及译者补充部份著作权属萧百龄及两只老虎工作室所有,
    Copyright (C) 1997。本中译版遵守并使用与上述原文版相同的使用
    条款发行。

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

    文体说明:

    1.
    译者已就原文中语焉不详、资讯过时,或可作额外补充之处附加注解。这些注解
    均以星号 (*) 於适当处(通常为句尾)标示。实际的说明文字则大多紧邻星号
    所在的段落,自成一段。所有注解文字均以「【译者】」起头。
    2. 范例中的 Perl 程式码已由译者适度加以翻译、去除多馀的括弧,并依
    perlstyle manpages 中所建议的写作格式及习惯稍作修整。

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

    目录:

    1.0 -入门简介

    Q1.1: 为什麽我的 HTML page/form 需要用 script?
    Q1.2: CGI 各代表什麽?
    Q1.3: 到底什麽叫 script?我能拿它来能做什麽?
    Q1.4: 什麽是 Perl?为什麽有那麽多人用它来做 CGI?
    Q1.5: 有没有教 CGI 或 Perl 的书或是线上资料?
    Q1.6: 是不是有这方面的邮递论坛 (mailing lists) 或新闻讨论群组?
    Q1.7: 网路上是不是有专门收藏邮递论坛或新闻讨论群组的 posts 的站?

    2.0 - Modules (模组)

    Q2.1: 我是不是该用 Perl CGI modules 来写 CGI scripts
    ?自己做不是比较容
    易吗?
    Q2.2: 如何知道某个 module 该怎麽个用法?
    Q2.3: 有哪些 Perl4 的 CGI 或 WWW的 libraries ?
    Q2.4: 有哪些给 Perl5 使用的 CGI modules?我该用哪个?为什麽?
    Q2.5: 为什麽这麽多 perl CGI libraries 都是 object-oriented
    (物件导向)
    的?我对用物件导向来写程式一窍不通。难道就没有简单一点,给不会物
    件导向的人使用的 libraries 吗?物件导向有多难?

    3.0 - CGI 与 WWW Server

    Q3.1: 我的 Perl CGI 程式要放在哪里执行?cgi-bin
    这个目录是做甚麽用的?
    Q3.2: 什麽是档案使用权限?怎样改?
    Q3.3: Perl 应该安装在哪里才可以执行它?
    Q3.4: 我为什麽一直得到 ``Server: Error 500'' 的讯息?
    Q3.5: 我试著打开一个档案,想把资料储存在里头,但是 open() 的指令失败
    了。到底是怎麽搞的?

    4.0 -程式设计疑难杂症

    Q4.1: 我想让 user 填的 form 资料自动寄给我,该怎麽做?有没有范例?
    Q4.2: 刚才这个用 form 送信的 script 看起来有点难。为什麽不乾脆用
    ``mailto:URL'',这样 user 填入的资料就可以寄给我了?
    Q4.3: 我要如何在 UNIX 以外的平台上做 Perl-CGI,譬如 Mac、MS-DOS、
    Windows 及 NT?我的 Perl CGI 程式能不能在这些平台之间互相移植呢?
    能不能很直接,没有麻烦?我在 UNIX 主机上有帐号,但是都是先在
    Windows/Mac 上做。我要如何在我自己的机器上测试写好的 CGI scripts

    Q4.4: 在 Perl CGI 程式中,STDERR (标准错误讯息)、STDIN
    (标准输入),和
    STDOUT (标准输出)各是连到何处?
    Q4.5: 如何写计数器?
    Q4.6: 要如何用一个 Perl 的取代指令将所有 HTML 标签从一份文件中删除?
    Q4.7: 要如何知道是谁/哪台机器/哪个浏览器执行了我的程式?
    Q4.8: 人家看得到我的 Perl CGI
    程式吗?如果是这样的话,那不就让他们知道
    我的程式是怎麽运作的了。这是个安全漏洞吗?我要怎麽把它隐藏起来?
    Q4.9: 我需要将整个 Perl library 都复制到我的 htdocs 目录底下吗?
    Q4.10:
    我为什麽不该叫使用者输入他们的密码或身份证字号或信用卡号码?有一
    个 TYPE="password" 不是就是拿来做这个的吗?
    Q4.11: 我要如何产生专门替 Netscape
    设计的网页,以别於世上其他的浏览器?
    Q4.12: 为什麽我的 system() 所产生的资料输出顺序不对?
    Q4.13: 我听说 Netscape 会支援 Java。这是不是说我现在得弃 Perl,改Java
    了?是不是该这麽做?
    Q4.14: 我要如何读取环境变数?为什麽它们有时候会不一样?
    Q4.15: 为什麽我输出的资料被搅乱了(如 ``b < a'' 会被破坏掉)?
    Q4.16: 为什麽我的Perl CGI 程式可以由指令列,却无法从浏览器去执行?
    Q4.17: 为什麽我的 Perl CGI 程式能跑,但是不会把资料写到档案中?
    Q4.18: 要如何做一个会维系状态,或允许【同一使用者】多次连线的 form?
    Q4.19: 如果不从浏览器去执行我的 CGI 程式,要如何替它除错?
    Q4.20: 如果不靠<FORM>标签,要如何叫出 Perl CGI 程式?
    Q4.21: 要如何避免旁人不先填栏位就执行我的 form?他们为什麽一直不断这麽
    做?
    Q4.22: 那些 server 回应码 (server response codes)
    是干什麽用的?有什麽意
    义?
    Q4.23: 为什麽 print "Location: http://host/page.html\n 不
    work?又为什
    麽它只 work 一次,但随後的转向就都弄错了呢?
    Q4.24: 要如何让 server 在每个 HTML
    网页的底部都自动加上一个:「最近更新
    日期: ...」的告示?或者,是不是只有 SSI 的网页才能这麽做?CGI 程
    式的日期要如何取得?
    Q4.25: 什麽样的场合下以 Perl 写 CGI 程式会显得太小题大作,因为用 shell
    就可以做到?而什麽样的场合对 Perl 来说又过於困难?用 C++ 做这类的
    事不是好得多吗?那用 C 呢?

    5.0 -安全

    Q5.1: 以 Perl 写成的 CGI 程式是不是不如以 shell 或 C 写的来得安全?
    Q5.2: 我该特别留意哪些安全事项?
    Q5.3: 为什麽大家都说 http://bigidiot.abuse-me.com/perl.exe?foo.pl
    这样
    很危险?会有多糟?
    Q5.4: 要如何在程式中安全地使用逆向撇号(backticks,"`")?这麽做:
    @ans = `grep'$user_field' some.file`; 是不是真的不安全?
    Q5.5: /$user_variable/ 这个句法是不是 Perl 5 中的一个安全漏洞?

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

    1.0 -入门简介

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

    Q1.1: 为什麽我的 HTML page/form 需要用 script?

    因为有的时候您需要在 HTML
    文件中使用动态资料(非固定不变的资料)。这包括了
    日期和时间这类的简单资料,或是一个显示「您是第 xxx
    位访客」的计数器。但它
    也可能包括根据使用者输入而得出的大饼图/条统图、资料库搜寻产生的结果,或动
    画等这类的东西。要做出像这样的东西,您唯一的方法是使用 CGI scripts
    (尽管您
    也可以应用客户端程式,如 Java 和 JavaScript
    来达到这个目的,不过那又是完全
    不同的一回事!)。

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

    Q1.2: CGI 各代表什麽?

    以下是我的编辑* Andy Oram (<http://jasper.ora.com/andyo> 和 Linda Mui
    (<http://pcnt1.ora.com> (他们很棒!)所写的一段非常好的描述:

    【译者】这是原文的第一作者 Shishir G. 指他所写的 CGI Programming
    on the World Wide Web (<http://www.ora.com/info/cgi/> 一书的编
    辑。

    Common 向您确保 CGI 可以使用多种程式语言并和多种
    不同的系统互动。它让您自由选择达到目的的方
    法,不把您绑死在单独一种作法之下*。
    Gateway 提示您 CGI 的力量不在於它本身所做的事,而
    在於它提供了连结其他系统的潜力,例如资料库
    和图形制造器。
    Interface 只是表示 CGI 对如何善用其特性提供了明确的
    界定-换句话说,您可以设计程式来适当利用这
    个介面。

    【译者】似乎有影射 Java 之意。

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

    Q1.3: 到底什麽叫 script?我能拿它来能做什麽?

    简单的说,script
    就是程式!好吧、好吧,应该说二者有语意上的差别。如果您真
    的想知道,那麽去买一本电脑程式设计的书来看(或许该说 script 设计 :-)
    )。

    您可以藉著写 CGI 程式/script
    变很多魔术。您可以即时制作图形、连结资料库传
    回【查询】结果,还可以连到 Internet 上其他的 servers 去。

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

    Q1.4: 什麽是 Perl?为什麽有那麽多人用它来做 CGI?

    答案就在 perl manpage 中的前三行叙述:

    Perl 是一解译式的语言,专为高效率检视文字档案、从中抽取资料,据
    以印制报表而设计。

    绝大多数 CGI
    应用程式的任务都涉及对资料作某种程度的处理,及连结外在程式。
    Perl 恰好提供了好用的工具,让人轻松愉快地达成这些任务。

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

    Q1.5: 有没有教 CGI 或 Perl 的书或是线上资料?

    * NCSA 的 CGI 文件 (<http://hoohoo.ncsa.uiuc.edu/cgi>
    * Forms 入门指引
    (<http://robot0.ge.uiuc.edu/~carlosp/cs317/ft.4-5.html>
    * 许多 CGI 资源结点

    (<http://www.cs.oberlin.edu/students/thirdstream/paxtond/cgi_stuff.html>
    * 原始的 CGI FAQ (<http://www.best.com/~hedlund/cgi-faq>
    * Perl FAQ (<http://mox.perl.com/perl/faq/index.html>
    * 由 Lincoln Stein 所著,一份很完整的WWW 及 CGI 操作安全 FAQ
    (<http://www-genome.wi.mit.edu/WWW/faqs/www-security-faq.html>
    * Paul Phillips 所著,CGI 安全 FAQ
    (<http://www.cerf.net/~paulp/cgi-security/safe-cgi.txt>
    * WWW FAQ (<http://boutell.com/faq/>

    【译者】此份 FAQ 的中译版可在
    http://www.acer.net/document/cwwwfaq/
    (<http://www.acer.net/document/cwwwfaq/> 处取得。

    以下是由 Cye H. Waldman (<http://wwwiz.com/books/cgi-perl.html>
    所整理的
    CGI 和 Perl 书籍一览表*:

    【译者】此表由译者更新,同时加入了原文作者 Tom C. 的 Perl 书评
    (<http://www.perl.com/perl/critiques/>以供读者参考。请注意:CGI
    各书的等级评定乃单就其 Perl 部份的水准及正确性而言。符号说明:
    (Tom C. 用骆驼而非星星)

    五颗星(****
    *) ==> 很棒的书 (terrific books)
    四颗星(***
    *) ==> 不错的书 (fine books)
    三颗星(***) ==> 像样的书 (decent books)
    两颗星(**) ==> 马马虎虎、勉强过得去的书 (so-so
    books)
    一颗星(*) ==> 差劲的书 (poor books)
    零颗星(0*) ==> 大烂书 (terrible books)
    NA ==> 不适用、无书评 (Not
    Applicable/Available)
    v4 ==> 内容较老旧,仅含盖 Perl4

    -----------------------------------------------------------------------------
    +---------------------------------------------------------------------------+
    作者 书名 评价 出版者 所附
    售价
    软体
    (美金)
    +---------------------------------------------------------------------------+
    Effective Perl
    Programming: 60 Methods
    Joseph Hall and Rules for Scripting NA Addison-Wesley □
    $30
    Better Programs
    (预定出版日期:1997年1
    月)
    +---------------------------------------------------------------------------+
    Perl Developer's Toolkit
    Jon Orwant (预定出版日期:1997年1 NA Advice Press □
    $??
    月)
    +---------------------------------------------------------------------------+
    Cgi Programming For
    ?? Dummies NA IDG Books □
    $25
    (预定出版日期:1997年1
    月)
    +---------------------------------------------------------------------------+
    Mastering Regular
    Expressions: Powerful
    Jeffrey Friedl Techniques for Perl and NA O'Reilly □
    $30
    Other Tools
    (预定出版日期:1997年1
    月)
    +---------------------------------------------------------------------------+
    CGI Developer's Resource
    J.M. Ivler (预定出版日期:1997年3 NA Prentice Hall 光
    $45
    月)碟
    +---------------------------------------------------------------------------+
    Perl 5 Windows NT
    Various Programming
    authors (预定出版日期:1997年1 NA New Riders □
    $45
    月)
    +---------------------------------------------------------------------------+
    Teach Yourself CGI
    Eric Herrmann Programming with Perl 5 NA Sams.net 光
    $40
    in a Week, 2nd Ed. 碟
    +---------------------------------------------------------------------------+
    CGI: Internet
    Mark Felton Programming C++ & C NA Prentice Hall □
    $??
    (预定出版日期:1997年3
    月)
    +---------------------------------------------------------------------------+
    CGI Bible
    Ed Tittle (预定出版日期:1996年11 NA IDG Books □
    $??
    月)
    +---------------------------------------------------------------------------+
    Craig Patchett The CGI Cookbook: Perl
    & and JavaScript NA Wiley 光
    $40
    Matt Wright (预定出版日期:1996年11 碟
    月)
    +---------------------------------------------------------------------------+
    Drag-n-Drop CGI
    Baron Weil (预定出版日期:1997年1 NA Addison-Wesley □
    $??
    月)
    +---------------------------------------------------------------------------+
    Stephen Lines How To Program CGI with NA Ziff-Davis 光
    $40
    Perl 5.0 碟
    +---------------------------------------------------------------------------+
    CGI Programming for
    Bob Denny et Windows 磁
    al. (预定出版日期:1997年3 NA O'Reilly 片
    $30
    月)


    [文章录入员:nancy]

    相关文章
  • Perl CGI 程式写作常问问题集(六)
  • Perl CGI 程式写作常问问题集(五)
  • Perl CGI 程式写作常问问题集(四)
  • Perl CGI程式写作常问问题集(三)
  • 中文版Perl CGI程式写作常问问题集(二)
  • 相关书籍:
    本站推荐内容

    近期主机类热搜关键词:
    美国服务器 美国服务器租用 海外服务器租用 国外服务器租用

    CGI/PERL
    ASP/ASP.NET
    PHP技术
    JSP技术
    XML技术
    CGI/PERL
    WEB服务器
    WordPress专题
    其它
    电脑教程阅读排行
    ·perl中的日期处理
    ·深入研究表单提交方式:GET/P...
    ·如何利用Perl开发Intern...
    ·CGI应用程序开发基础
    ·本地调试PERL CGI程序
    ·PERL与MySQL(DBI接口...
    ·PerlScript编写ASP
    ·CGI编程--Perl的安装配置
    ·Perl用于实现遗传算法
    ·ASP、CGI、ISAPI、OD...