电子商务方案 全易网上商店 去看看>> 妙搜·生活信息搜索引擎·全国61城市公交查询好站二百五·个人门户

全易因特网软件-->为您提供专业CGI软件,按此进入联系合作…… Perl问题另版  加入网站挣钱
 免费登录搜索引擎
请按 CTRL+D
添加到收藏夹
站点导航 CGI支持论坛 好易CGI工厂  用户列表  联系合作 资源库导航 <=返回 × 关闭

全易因特网软件


好易CGI工厂

 
全易网上商店
虚拟域名系统 [ok]
在线定单处理 [ok]
邮件列表管家 [ok]
域名注册系统 [ok]
全易数据库 [ok]
 
产品支持
订购产品
意见反馈
联系合作
友情链结
网络安全
CGI资源 免费资源
CGI支持论坛 精华
CGI资源站
SSI全攻略
给我写信
最新免费主机
PERL工具集
CGI安装指南

合作网站

好站二百五个人门户

妙搜·生活信息搜索
IP地址归属地查询
公交线路及换乘查询
手机号归属地查询
身份证信息查询检验
生日密码信息查询
 

中文版 Perl CGI 程式写作常问问题集 (Perl CGI Programming FAQ)

版本: 1.0

原文作者:
Shishir Gundavaram <shishir@ora.com>
Tom Christiansen <tchrist@perl.com>

中译、补充:
萧百龄 <pailing@2Ti.com>

文体说明:

  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
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 中的一个安全漏洞?
版权事宜
 
[ 返回页首 ] 更新于:2005/07/09
联系我们 通过QQ在线与客服人员交流
1998-2005 Copyright© 全易因特网软件 版权所有
好站二百五·网站指南 合作网站
京ICP备05009694号