第1章 CGI基本概念 1
1.1 通用网关接口CGI 3
1.2 CGI的基本原理 4
1.2.1 Internet的发展 4
1.2.2 为什么使用CGI 5
1.2.3 CGI的工作原理 6
1.2.4 CGI程序的可移植性 7
1.2.5 CGI的局限性 8
1.2.6 CGI的输入输出 8
1.2.7 编程语言的选择 12
1.3 CGI的传送方法 15
1.3.1 URL是如何工作的 15
1.3.2 GET方法 16
1.3.3 POST方法 19
1.3.4 CGI的编码方式 24
1.4 CGI的环境变量 25
1.4.1 环境变量的基本概念 25
1.4.2 环境变量介绍 26
1.4.3 环境变量的使用 28
1.5 小结 31
第2章 关于HTML和SSI 33
2.1 HTML简介 35
2.2 HTML中的表单(FORM) 36
2.2.1 定义表单FORM标签 36
2.2.2 INPUT标签 38
2.2.3 SELECT标签 44
2.2.4 TEXTAREA标签 48
2.2.5 一个实用的表单 49
2.3 服务器端附件(SSI) 52
2.3.1 SSI的基本概念 52
2.3.2 SSI的基本功能 52
2.3.3 SSI与CGI的区别 53
2.3.4 SSI的工作原理 53
2.3.5 SSI语法 54
2.3.6 针对SSI配置服务器 54
2.3.7 常用的SSI命令 56
2.4 CGI程序的激活 62
2.4.1 关于绝对路径和相对路径 62
2.4.2 CGI程序的激活 63
2.5 小结 64
第3章 CGI的运行环境 65
3.1 Web服务器的配置 67
3.1.1 服务器介绍 67
3.1.2 如何配置服务器 68
3.1.3 Apache for Win32s——一个免费的Web服务器 69
3.2 CGI程序运行环境的建立和测试 74
3.2.1 关于Perl解释器 74
3.2.2 Perl解释器的安装 74
3.2.3 调试CGI程序 83
3.3 试编一个CGI程序——HelloWorld 85
3.3.1 HTML页面的建立 85
3.3.2 Hello World的编写 86
3.3.3 运行Hello World 87
3.3.4 改进的Hello World 88
3.4 小结 90
第4章 Perl语言简介 91
4.1 Perl简介 93
4.1.1 Perl是什么 93
4.1.2 关于Perl的版本 93
4.1.3 关于Perl的学习 94
4.1.4 关于Perl的获得 95
4.2 Perl的变量 95
4.2.1 标量变量 95
4.2.2 数组变量 95
4.2.3 关联数组变量 96
4.3 Perl运算符 97
4.3.1 赋值运算符 97
4.3.2 算术运算符 98
4.3.3 数值运算符 98
4.3.4 字符串运算符 99
4.3.5 逻辑运算符 99
4.3.6 文件运算符 99
4.3.7 其他常用的运算符 100
4.4 Perl的基本流程 100
4.4.1 判断流程控制 100
4.4.2 循环流程控制 103
4.5 Perl的函数 107
4.5.1 有关文字处理的函数 107
4.5.2 有关文件系统的函数 115
4.5.3 有关进程处理的函数 120
4.6 Perl的子程序 122
4.6.1 子程序的定义 122
4.6.2 子程序的调用 122
4.6.3 子程序的返回值 123
4.6.4 局部变量 123
4.6.5 子程序参数的传递 123
4.6.6 用别名传递数组参数 124
4.7 Perl的正则表达式 125
4.7.1 正则表达式(Regular Expression)的常用语法 125
4.7.2 正则表达式的常用运算符 126
4.8 Perl的面向对象程序设计 128
4.8.1 面向对象程序设计(OOP)的基本概念 129
4.8.2 Perl中的模块(module)和包(package) 129
4.8.3 Perl中的类和对象 130
4.8.4 Perl中的方法 130
4.8.5 Perl中的基类和继承类 131
4.9 小结 132
第5章 用Perl进行CGI程序设计 133
5.1 CGI程序结构 135
5.1.1 CGI程序的构成 135
5.1.2 获取用户提交的数据 137
5.1.3 处理用户数据 142
5.1.4 返回页面给用户 142
5.1.5 结束程序 145
5.2 CGI程序的开发 145
5.2.1 CGI程序开发前的准备 145
5.2.2 CGI程序的开发过程 147
5.3 CGI的资源 147
5.3.1 个人资源 147
5.3.2 公共资源 148
5.4 小结 150
第6章 几个常用的例子 151
6.1 解析用户提交的数据 153
6.1.1 HTML页面的建立 153
6.1.2 CGI程序的编写 155
6.2 最常见的CGI程序——计数器的实现 160
6.2.1 计数器的激活方法 160
6.2.2 SSI方式激活计数器 160
6.2.3 使用<IMG>标签激活计数器 168
6.2.4 使用<A>标签激活计数器 179
6.3 用户留言板 182
6.3.1 为什么要用留言板 182
6.3.2 留言板页面的建立 182
6.3.3 留言板CGI程序的编写 184
6.3.4 改进的留言板 191
6.4 聊天室 200
6.4.1 聊天室的结构 200
6.4.2 聊天室页面的建立 200
6.4.3 CGI程序的编写 201
6.4.4 改进聊天室的建议 210
6.4.5 能踢人的聊天室 210
6.5 FORM-MAIL的实现 227
6.5.1 Unix下FORM-MAIL的实现 227
6.5.2 Windows下如何实现 235
6.6 电子贺卡的实现 243
6.6.1 相关页面的建立 243
6.6.2 CGI程序的编写 250
6.6.3 完整的源代码 259
6.7 小结 267
第7章 建立搜索引擎 269
7.1 站内搜索引擎 271
7.1.1 HTML页面的建立 271
7.1.2 CGI程序的编写 275
7.2 Web搜索引擎 293
7.2.1 HTML页面的建立 293
7.2.2 CGI程序的编写 298
7.3 小结 309
第8章 使用Perl中的CGI模块 311
8.1 关于Perl中的CGI模块 313
8.1.1 一个有用的模块——CGI.pm 313
8.1.2 一个使用CGI.pm编写的程序 313
8.1.3 CGI模块的功能 315
8.1.4 编程方法 315
8.2 处理用户提交的数据 316
8.2.1 创建一个CGI对象 316
8.2.2 如何调用CGI模块中的方法 317
8.2.3 获取提交的数据 318
8.2.4 使用CGI对象方法 322
8.2.5 应用实例 326
8.3 小结 334
第9章 CGI与数据库 335
9.1 数据库的选择 337
9.2 SQL语言介绍 337
9.2.1 SQL命令的种类 338
9.2.2 数据库表 340
9.2.3 使用SQL从表中取记录 347
9.2.4 插入数据、更新数据和删除数据 352
9.2.5 利用索引 355
9.2.6 用SQL建立索引 356
9.2.7 集合函数 358
9.2.8 其他常用的SQL表达式、函数和过程 360
9.3 使用ODBC模块开发Web数据库 371
9.3.1 ODBC模块的特点 371
9.3.2 ODBC模块中的常量 372
9.3.3 使用ODBC模块的程序结构 372
9.3.4 建立ODBC对象 373
9.3.5 ODBC模块中提供的方法 373
9.3.6 设置DSN 379
9.3.7 一个完整的例子 381
9.3.8 与其他数据库的接口 388
9.4 小结 392
第10章 CGI的发展 393
10.1 ASP 395
10.1.1 ASP简介 395
10.1.2 ASP的功能 396
10.1.3 ASP的相关资料 397
10.2 PHP 398
10.2.1 PHP简介 398
10.2.2 PHP的功能 399
10.2.3 PHP的相关资料 400
10.3 ISAPI 400
10.3.1 ISAPI概念 400
10.3.2 ISAPI的程序语言 400
10.3.3 ISAPI的原理 401
10.3.4 ISAPI程序的执行 401
10.3.5 ISAPI的性能评价 401
10.4 NSAPI 401
10.4.1 NSAPI的原理 401
10.4.2 NSAPI程序的响应 402
10.5 几种开发工具的比较 402
10.6 小结 404
第11章 CGI的安全性 405
11.1 CGI在安全方面容易出现的漏洞 407
11.1.1 关于CGI的安全性 407
11.1.2 CGI安全吗 407
11.1.3 使用安全的CGI程序 408
11.1.4 用SSI方式激活CGI存在的问题 410
11.1.5 不安全的函数调用 410
11.1.6 正确处理用户数据 413
11.2 配置安全的服务器 414
11.2.1 安全的操作系统 414
11.2.2 安全的Web服务器 414
11.2.3 目录的管理 415
11.2.4 建立安全的服务器 415
11.2.5 关于安全性问题的资源 417
11.3 小结 417
附录A cgi-lib.pl库 419
A.1 cgi-lib.pl简介 419
A.2 cgi-lib.pl的源代码 419
附录B ODBC.pm模块的源代码 432
附录C 网络常见名词 471
附录D 网络术语速查 473