目 录 1
引言 1
第一部分CGI引论 6
第1章万维网(World Wide Web) 6
1.1客户机/服务器——浏览器和服务器 7
1.1.1连接 8
1.1.2请求 8
1.1.3 响应 11
1.2 HTML超文本置标语言 13
1.1.4关闭 13
1.2.1 SGML标准通用置标语言 14
1.2.2 目前HTML的版本 15
1.2.3 Mozilla DTD 15
1.2.4HTML3.2 16
1.3小结 16
1.4复习思考 16
第2章公共网关界面(CGI) 18
2.1 CGI如何工作 18
2.1.1环境变量 19
2.1.3 STDIN和STDOUT 23
2.1.2命令行方式 23
2.1.4 GET方法 24
2.1.5 POST方法 24
2.2 CGI脚本使用的语言 26
2.2.1 Perl 26
2.2.2 C语言 26
2.2.3 UNIX shell 26
2.2.4Tcl语言 27
2.2.5 Visual Basic语言 27
2.2.6其它的CGI编程语言 27
2.3 CGI的未来 28
2.4小结 29
2.5复习思考 29
2.6练习 29
第二部分CGI的基本应用 30
第3章使用表单收集信息 30
3.1 〈FORM〉属性 30
3.1.1 ACTION属性 31
3.1.2 METHOD属性 31
3.2〈INPUT〉标签 32
3.1.4〈FORM〉标签的应用实例 32
3.1.3 ENCTYPE属性 32
3.2.1 text输入类型 33
3.2.2 password输入类型 34
3.2.3 hidden输入类型 35
3.2.4 checkbox输入类型 35
3.2.5 radio输入类型 36
3.2.6 reset输入类型 36
3.3〈SELECT〉标签 37
3.2.8注意事项 37
3.2.7 submit输入类型 37
3.4〈TEXTAREA〉标签 39
3.5创建表单 40
3.6小结 42
3.7复习思考 42
3.8练习 43
第4章简单的Guestbook 44
4.1 SGBl的用途 44
4.1.2使用SGBl 46
4.2 SGBl如何工作 46
4.1.1创建HTML文件调用SGBl 46
4.2.1 main()例行程序 47
4.2.2公共子例程 50
4.2.3读取输入信息 51
4.2.4分析输入信息 53
4.2.5认证输入信息 53
4.3 SGBl程序范例 54
4.4小结 66
4.5复习思考 66
4.6练习 66
5.1.1 HTML文档的引言部分 67
第5章联机商业订单 67
5.1 Web页面 67
5.1.2确定所需的客户信息 68
5.1.3提供产品选项 69
5.1.4发送订单 71
5.2脚本 72
5.2.1确定方法 72
5.2.2拆分信息为Name/Value对 73
5.2.3处理表单未传递的元素 74
5.2.4确定客户的付款方式 76
5.2.5 向客户返回信息 77
5.3小结 79
5.4复习思考 79
5.5练习 79
第三部分与用户交流 81
第6章高级脚本 81
6.1 出错检查 81
6.2访问者错误 85
6.2.1请完整填表 86
6.2.2名字输入正确 87
6.2.3只能是电子邮件 88
6.2.4每位客户登录一次 89
6.2.5确实是你吗 91
6.3给用户返回信息 91
6.3.1创建定制页面 94
6.4小结 96
6.5复习思考 96
6.6练习 96
第7章较为复杂的Guestbook 97
7.1分析SGBl的优缺点 97
7.2创建分立的输入表单 98
7.3 收集更多信息 100
7.4反向显示 101
7.4.1写记录 102
7.4.2读记录 103
7.5添加导航辅助 107
7.6配置Guestbook 110
7.7小结 111
7.8复习思考 111
7.9练习 112
第8章Shopping Cart脚本 113
8.1全部家当 114
8.1.1谁买 114
8.1.2 Main()的状态 114
8.1.3付款 116
8.1.4验证 116
8.2 ShopCart如何工作 118
8.3编译与修改ShopCart 123
8.3.1添加配置文件 123
8.4小结 124
8.5复习思考 124
8.3.2保存输出 124
8.6练习 125
第四部分数据库连接 126
第9章收集信息 126
9.1使用访问者的信息 126
9.2使用服务器的信息 131
9.3建立自己的log文件 132
9.4建立统计资料 133
9.5小结 136
9.7练习 137
9.6复习思考 137
第10章在平台文件中存储信息 138
10.1字段和记录 138
10.1.1文本字段 139
10.1.2固定长度与可变长度 140
10.1.3其他类型的字段 141
10.1.4顺序存取与随机存取 144
10.1.5存取方法的比较 146
10.2管理自己的平台文件 147
10.2.1使用平台文件 148
10.2.2管理并行操作 149
10.4复习思考 152
10.3小结 152
10.5练习 153
第11章在数据库中存储信息 154
11.1在Dbm数据库中存储信息 154
11.1.1 Dbm 154
11.1.2 Ndbm 154
11.1.4 Gdbm 1.7.1版 155
11.1.5 Berkeley Db 1.85版 155
11.1.3 Sdbm 155
11.1.6在Dbm数据库中插入信息 156
11.1.7由Dbm数据库检索信息 158
11.1.8查询Dbm数据库 160
11.2数据库锁定 162
11.3 SQL数据库 163
11.3.1 Oracle 165
11.3.2 Sybase 165
11.3.3 Illustra 166
11.3.4 Postgres 166
11.3.5 Ingres 166
11.3.6 mSQL 167
11.3.8 DBI 168
11.3.9 WOW 168
11.3.7数据库信息 168
11.3.10 Cold Fusion 169
11.4并行操作问题 170
11.5数据库的考虑 170
11.6小结 171
11.7复习思考 171
11.8练习 171
12.1使用SQL服务器的Microsoft IIS 172
第12章公共数据库解决方案 172
12.1.1 IDC所需的控制指令 174
12.1.2附加的IDC控制指令 174
12.1.3 BeginDetail和EndDetail标签 175
12.1.4 CurrentRecord控制指令 175
12.1.5条件操作符 175
12.1.6 MaxRecords变量 176
12.1.7字段 176
12.1.8 HTTP变量 176
12.2使用GSQL 178
12.2.1一组显示命令 179
12.2.2常用命令 180
12.2.3 SQL控制指令 182
12.2.4 GSQL的缺点 183
12.3使用mSQL 184
12.3.1插入信息 184
12.3.2将信息存入mSQL数据库中 186
12.3.3创建查询 187
12.3.4给访问者显示日程表号 187
12.3.5给每个日程表添加活动 188
12.3.6检索信息 192
12.3.7检查和扩展脚本 196
12.4小结 196
12.5复习思考 197
12.6练习 197
第五部分给Web编索引 198
第13章索引入门 198
13.1完美的秘书 199
13.1.1 WAIS 199
13.1.2模糊查询 201
13.2.1 Alta Vista 203
13.2借助于商业索引 203
13.2.2 Infoseek 204
13.2.3 Lycos 205
13.2.4 Starting Point 205
13.2.5 Excite 207
13.3小结 207
13.4复习思考 207
13.5练习 208
14.1关键字 209
14.1.1在纯文本中注关键字 209
第14章给自己的站点编索引 209
14.1.2 在HTML的META标签中注关键字 210
14.1.3在HTML注释中注关键字 210
14.2简单的大众Web索引系统SWISH 211
14.3免费WAIS(freeWAIS) 213
14.3.1 UNIX上的免费WAIS 213
14.3.2 Windows NT上的免费WAIS 214
14.3.3建立WAIS数据库 214
14.3.4访问WAIS数据库 215
14.4小结 216
14.6练习 217
14.5复习思考 217
第六部分 服务器管理 218
第15章服务器的配置 218
15.1重要术语和概念 218
15.2配置UNIX服务器 220
15.2.1 NCSA的HTTPD 220
15.2.2 CERN的HTTP(W3C) 222
15.3配置Windows NT服务器 222
15.3.1 EMWAC的HTTPS 223
15.3.2 Microsoft的IIS 224
15.3.3 O′Reilly的WebSite 225
15.3.4 Process Software的Purveyor 225
15.4小结 226
第16章服务器端包含(SSI) 227
16.1激活SSI 227
16.2 SSI的格式 229
16.2.1 config命令 229
16.2.2 include命令 230
16.2.5 flastmod命令 231
16.2.4 fsize命令 231
16.2.3 echo命令 231
16.2.6 exec命令 232
16.3 SSI脚本 234
16.3.1计数器脚本 234
16.3.2随机图片脚本 236
16.4小结 238
16.5复习思考 239
16.6练习 239
17.1确认有效的输入 240
第17章安全性问题 240
17.1.1不良数据的来源 241
17.1.2验证数据满足字段规则 243
17.2安全执行外部程序 244
17.3保护文件、目录和程序 245
17.3.1利用操作系统的授权设施 246
17.3.2用显式路径调用外部程序 246
17.4使用别人的脚本 247
17.6复习思考 248
17.7练习 248
17.5小结 248
第七部分CGI替换方案 249
第18章JavaScript 249
18.1 JavaScript基础知识 250
18.1.1浏览器的对象 250
18.1.2文档分析 252
18.1.3值、名字和文字 253
18.2小玩意儿和小装饰 254
18.2.1 时间和日期 255
18.2.2 WebCrawler窗口 256
18.2.5验证输入的有效性 258
18.2.3确认对话框 258
18.2.4警报框 258
18.2.6 JavaScript演示页面 259
18.3有关注意事项 263
18.4 小结 264
18.5复习思考 264
18.6练习 264
第19章使用PHP/FI 265
19.1 PHP/FI如何工作 265
19.2简单的Guestbook 268
19.3 使用mSQL和PHP/FI做电话簿 277
19.4探索其它PHP/FI例子 280
19.5小结 281
19.6复习思考 281
19.7练习 281
第20章使用Visual Basic 283
20.1VB和CGI:问题 283
20.2.1 CGI-WIN 285
20.2.2 CGIShell 285
20.2VB和CGI:解决方案 285
20.2.3 VB4-32 286
20.3如何使用VB4-32 287
20.3.1标准对话 287
20.3.2拆解输入 289
20.3.3管理输出 293
20.4用VB4CGI.BAS建立CGI应用程序 294
20.4.1错误检查 295
20.4.2启动参数 296
20.6复习思考 297
20.7练习 297
20.5 小结 297
第八部分 网上CGI资源 299
第21章在Internet网上寻求帮助 299
21.1UseNet 299
21.2 WWW常见问题解答(FAQ) 301
21.3邮件列表 303
21.4联机指导教材 304
21.5小结 304
第22章Web上的CGI资源 305
22.1 程序设计指导教材和代码举例 306
22.2 CGI和SSI免费软件和共享软件 307
22.3有趣的资料:做恰到好处的事 309
22.4索引 311
22.5与SQL数据库的连接 312
22.6 Spider,Worm,Crawler和机器人 314
22.7 CGI交互式游戏 315
22.8实例简介一CalWeb 316
22.9 实例简介二Internet Concepts,LLC 317
22.10实例简介三RealTime Internet Services 318
附录A术语词汇表 319
附录B复习思考题答案 326