| 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 中的一个安全漏洞? |
| 版权事宜 |