第1章 CGI基本概念 1
1.1 CGI与Internet 1
1.1.1 Internet的产生和发展 1
1.1.2 Internet服务 2
1.1.3 我国Internet的现状和发展 2
1.1.4 CGI与Internet 2
1.2 CGI的基本原理 3
1.2.1 CGI的含义 3
1.2.2 MIME标准 5
1.3 编程语言的选择 6
1.3.1 C/C++ 6
1.3.2 Shell脚本语言 7
1.3.3 Visual Basic语言 9
1.3.4 Peri语言 9
1.3.5 其他语言 9
1.4 CGI的传送方法 9
1.5 CGI的环境变量 10
1.4.3 HEAD方法 10
1.5.1 环境变量的含义 10
1.4.2 POST方法 10
1.4.1 GET方法 10
1.5.2 CGI常用的环境变量 11
第2章 HTML语言 14
2.1 HTML语言介绍 14
2.1.1 HTML文件 14
2.1.2 HTML标准 15
2.1.3 HTML的版本 16
2.1.4 HTML基础 16
2.1.5 HTML的优点 17
2.1.6 HTML结构 18
2.1.7 利用HTML设计Web页面 20
2.2 HTML中的表单及在CGI程序中的作用 28
2.2.1 HTML表单 28
2.2.2 FORM表单与CGI的关系 35
2.3 CGI程序的激活 36
2.3.1 URL的编码和解码 36
2.3.2 数据传送 37
第3章 CGI的运行环境 43
3.1 WIN95/98和WIN NT环境下的Web服务器设置 43
3.1.1 WIN95/98环境下如何设置Web服务器 43
3.1.2 WindowsNT环境下如何设置Web服务器 50
3.1.3 Windows环境下安装Sambar服务器 56
3.2.1 UNIX环境下Web服务器的配置 58
3.2 UNIX和LINUX环境下的Web服务器设置 58
3.2.2 LINUX环境下Web服务器的配置 64
3.3 CGI程序运行环境的建立和测试 67
3.3.1 个人Web服务器中CGI应用程序运行环境的建立和测试 67
3.3.2 IIS服务器中CGI应用程序环境的建立和测试 69
3.3.3 Sambar服务器中CGI应用程序环境的建立和测试 71
3.3.4 Apache Web服务器中CGI应用程序环境的建立和测试 74
3.3.5 cgi-bin目录 79
3.4 我的第一个CGI程序——hello world 80
4.1 Perl简介 85
第4章 Perl语言 85
4.2 Perl的变量 87
4.3 Perl运算符 96
4.4 Perl的基本流程 100
4.4.1 选择性流程控制 101
4.4.2 循环流程控制 103
4.5 Perl的函数 107
4.5.1 字符串处理函数 108
4.5.2 标量变量处理函数 111
4.5.3 数组变量处理函数 113
4.5.4 关联数组变量处理函数 117
4.5.5 数学处理函数 119
4.5.6 其他函数 120
4.6.1 库和require函数 125
4.6 Perl中的库、包和模块 125
4.6.2 Perl中的包 127
4.7 Perl的面向对象技术 130
4.7.1 Perl中的类和对象 130
4.7.2 类的继承 134
4.8 Perl的文字处理模式 136
4.8.1 文字处理模式的常用语法 137
4.8.2 语法的使用实例 138
4.8.3 文字处理模式的相关函数 139
5.1.1 CGI程序的语法结构 143
第5章 用Perl进行CGI程序设计 143
5.1 CGI程序结构 143
5.1.2 CGI程序的逻辑结构 147
5.1.3 编写CGI程序 149
5.1.4 CGI程序可移植性 152
5.2 CGI程序中的子程序 153
5.2.1 require函数 154
5.2.2 子程序 155
5.3 合理使用Perl内置变量 160
5.4 一个有用的库——cgi-lib.pl 161
5.4.1 cgi-lib.pl库的特点 161
5.4.2 如何使用cgi-lib.pl库 162
5.4.3 cgi-lib.pl使用实例 165
第6章 几个常用的例子 172
6.1 最常见的CGI程序——计数器的实现 172
6.1.1 问题的分析 173
6.1.2 计数器的编程实现 173
6.1.3 测试计数器 181
6.1.4 完善计数器 183
6.1.5 SSI技术 186
6.2 用户留言板 196
6.2.1 留言板的文档实现 197
6.2.2 实现处理留言的CGI程序 199
6.2.3 留言板的安全性问题 212
6.2.4 如何将留言板移植到UNIX环境中 213
6.3 用户密码认证 216
6.3.1 对口令加密 217
6.3.2 用户密码验证程序的文档实现 219
6.3.3 用户密码验证的CGI程序实现 222
6.3.4 密码认证程序的安全性问题 234
6.3.5 如何将密码认证移植到UNIX环境中 234
6.4 聊天室 238
6.4.1 聊天室所需文档的实现 239
6.4.1 处理聊天功能的CGI程序的实现 240
6.4.3 对聊天室的测试 249
6.4.4 如何将聊天室程序移植到UNIX环境中 251
6.5 Form to Mail的实现 253
6.5.1 UNIX环境中Form to Mail的实现 253
6.5.2 Windows环境中Form to Mail的实现 265
6.6 HTTP Cookie的CGI实例 266
第7章 CGI的安全性 272
7.1 CGI容易出现的安全漏洞 272
7.1.1 不合理的表单数据 273
7.1.2 未限制长度的表单数据 273
7.1.3 不合理数据的来源 273
7.3.1 拒绝不合要求的表单数据 274
7.2 不安全的函数 274
7.3 如何编写安全的CGI程序 274
7.3.2 对文件名数据的处理 275
7.3.3 对不允许输入HTML的处理 276
7.3.4 小心路径数据 277
7.3.5 处理SSI命令 278
7.3.6 处理外部进程 279
7.3.7 选择编程语言 280
7.4 配置安全的服务器 281
7.4.1 CGI程序权限 281
7.4.3 共同的Web服务器 282
7.4.2 CGI程序用户 282
7.4.5 使用CGI Wrap 283
7.4.6 本地文件安全 283
7.4.4 setuid 283
7.4.7 一个安全的CGI程序实例 284
第8章 用CGI设计BBS 289
8.1 BBS简介 289
8.2 利用CGI编写BBS系统 289
8.2.1 系统简介 289
8.2.2 BBS系统的实现 290
9.1.1 Web与数据库的关系 323
第9章 CGI与数据库 323
9.1 Web与数据库 323
9.1.2 Web数据库的应用 324
9.2 数据库的选择 326
9.3 CGI与数据库的接口 328
9.4 一个处理数据库的实例 330
9.4.1 数据库接口--DBI 330
9.4.2 利用DBI开发Web数据库实例 332
9.5 其他有用的访问数据库工具 340
9.5.1 Oraperl 340
9.5.3 Sybperl 342
9.5.2 PRO*C/C++ 342
第10章 CGI的发展 344
10.1 Java语言 344
10.1.1 Java的发展历程 344
10.1.2 Java的特点 345
10.1.3 Java的开发和运行环境 346
10.1.4 Java平台 348
10.1.5 Java的作用 348
10.1.6 一个简单的Java程序——Hello World 348
10.2.1 ASP的定义 350
10.2 ASP技术 350
10.2.2 ASP的特点 352
10.2.3 ASP的安装与配置 353
10.2.4 ASP的工作方式 355
10.2.5 ASP与表单的结合 356
10.2.6 ASP的主要编程方法 358
10.2.7 ASP的不足 367
10.3 PHP技术 367
10.3.1 PHP的发展和特点 368
10.3.2 PHP与CGI和ASP的比较 369
10.3.3 PHP的安装与设置 370
10.3.4 编写PHP程序 372