第1章 开发环境配置 2
1.1在Windows环境下配置IIS+PHP+MySQL+phpMyAdmin 3
1.1.1安装IIS 3
1.1.2安装PHP 4
1.1.3 PHP设置 5
1.1.4安装MySQL 9
1.1.5安装Zend Opmizer 10
1.1.6安装phpMyAdmin 11
1.2在Windows环境下配置Apache+PHP+MySQL+phpMyAdmin 13
1.3 LAMP平台的搭建 15
1.3.1安装Apache 15
1.3.2安装MySQL 16
1.3.3安装 PHP 18
1.3.4搭建快速开发平台 18
1.4本章小结 19
第2章 PHP语法 20
2.1 PHP入门 21
2.1.1第一个PHP网页 21
2.1.2网页中嵌入PHP程序 22
2.1.3语法格式 22
2.1.4 PHP中的注释 23
2.2 PHP的常量与变量 24
2.2.1什么是变量和常量 24
2.2.2定义变量 25
2.2.3定义常量 26
2.2.4变量的作用域 27
2.2.5变量的输出 29
2.2.6 PHP的表单变量 29
2.2.7 PHP的环境变量 31
2.2.8 PHP的系统常量 33
2.3 PHP的运算符 34
2.3.1算术运算符 34
2.3.2条件运算符与逻辑运算符 35
2.3 3字符串运算符 37
2.3.4 PHP的运算优先级 37
2.4 PHP的数据类型 38
2.41常用数据类型 39
2.4.2特殊的数据类型 39
2.4.3数据类型的查看和验证 40
2.5 PHP数据类型的转换 41
2.5.1转换成整型 41
2.5.2转换成字符串型 42
2.5.3转换成浮点型 42
2.5.4转换成布尔型 43
2.5.5强制类型转换 44
2.6实例 45
2.6.1静态变量使用实例 45
2.6.2数学运算符与优先级实例 46
2.7小结 46
第3章 PHP的常用语句 47
3.1流程控制语句 48
3.1.1 if条件语句 48
3.1.2 switch条件语句 50
3.1.3 for循环语句 52
3.1.4 while循环语句 54
3.1.5 do while循环语句 55
3.1.6转移控制语句:continue 56
3.1.7转移控制语句:break 57
3.1.8转移控制语句:return 57
3.2流程控制语句实例 58
3.2.1实例:输出表格 58
3.2.2实例:输出九九乘法口诀表 59
3.2.3实例:解一元二次方程 60
3.3文件包含 62
3.3.1使用require和require-once语句包含文件 62
3.3.2使用include和include once语句包含文件 65
3.4小结 66
第4章 函数 67
4.1函数的定义与调用 68
4.1.1函数的调用 68
4.1.2自定义函数 69
4.1.3自定义函数实例 70
4.2数学函数 71
4.2.1 rand与srand产生随机数 71
4.2.2随机数生成实例:生成数字代码 72
4.2.3数学函数 73
4.3时间函数 74
4.3.1获得日期时间信息函数getdate 74
4.3.2获得当前时间函数gettimeofday 76
4.3.3日期验证函数checkdate 77
4.3.4格式化本地日期时间函数date 78
4.3.5获得本地化时间戳函数mktime 80
4.4小结 81
第5章 数组 82
5.1数组的操作 83
5.1.1数组的理解 83
5.1.2数组的建立 84
5.1.3数组的访问 86
5.1.4数组的遍历 87
5.1.5数组的索引与键值操作技巧 89
5.2数组的常用函数 92
5.2.1使用so和rsort对数组排序 92
5.2.2使用aso和arsort对数组排序 93
5.2.3使用array-mulsort对数组进行排序 94
5.2.4数组与堆栈 95
5.2.5使用array-shift和array-unshift函数访问数组 96
5.2.6数组查找函数array-search 97
5.2.7其他数组函数 97
5.3数组应用实例 98
5.3.1实例:数组的排序与访问 99
5.3.2实例:数组的访问 100
5.4小结 101
第6章 字符串 102
6.1字符串的理解 103
6.2字符串的显示与格式化 103
6.2.1 echo和print输出字符串 103
6.2.2 sprintf字符串格式化输出 104
6.3字符串的常用操作 105
6.3.1字符串重复函数str-repeat 105
6.3.2字符串替换函数str replace 106
6.3.3字符串分解操作函数str-split 107
6.3.4字符串分解成单词函数str word-count 108
6.3.5字符串查找操作函数strstr 109
6.3.6字符串的长度函数strlen 110
6.3.7获得字符串函数substr 110
6.4小结 111
第7章 MySQL数据库 114
7.1数据库的启动与关闭 115
7.1.1服务管理方式启动与关闭MySql服务 115
7.1.2命令行方式管理MySql服务 116
7.2 phpMyAdmin管理MySQL数据库 116
7.2.1登录和使用phpMyAdmin 117
7.2.2添加和删除数据库 118
7.3在数据库中创建表 119
7.3.1数据表的理解 119
7.3.2 MySQL的数据类型 119
7.3.3建立数据库模型 120
7.3.4在phpMyAdmin中创建表 120
7.4用phpMyAdmin管理表中的数据 122
7.4.1 phpMyAdmin添加数据 122
7.4.2 phpMyAdmin查看数据 123
7.5权限管理 123
7.5.1添加和删除用户 124
7.5.2设置数据库用户的权限 125
7.6 MySQL命令行管理MySQL数据库 126
7.6.1登录MySQL命令行 126
7.6.2新建与删除数据库 126
7.6.3新建或删除数据库表 127
7.7用SQL语句访问MySQL数据库 130
7.7.1插入数据 130
7.7.2数据查询 131
7.7.3数据更新 136
7.7.4数据删除 136
7.7.5查询数据的分组与处理 137
7.8 MySQL的内置函数 139
7.9小结 140
第8章 PHP和MySQL的应用 141
8.1 MySOL的连接和选择数据库 142
8.1.1连接到MySQL服务器 142
8.1.2选择数据库 143
8.1.3网站配置文件 144
8.2数据库的查询操作 145
8.2.1执行SQL语句 145
8.2.2获取查询结果的记录数 146
8.2.3获取查询结果的某一条记录 147
8.2.4逐行获取记录集中的每一行数据 148
8.3数据库访问实例 151
8.3.1院系的添加 151
8.3.2院系管理列表 152
8.3.3院系的删除 153
8.3.4院系编辑网页 153
8.3.5添加班级 155
8.3.6数据分页显示 156
8.3.7数据列表的排序 159
8.4小结 161
第9章 项目简介及功能演示 164
9.1项目简介 165
9.1.1项目优点 166
9.1.2项目不足 166
9.2前台体验 166
9.2.1前台首页 166
9.2.2文章 显示与评论 167
9.2.3标签、搜索、日历等模块 168
9.2.4导航链接 169
9.3后台功能 170
9.3.1登录界面 171
9.3.2“文章 管理”模块 172
9.3.3“模板管理”模块 173
9.3.4“分类管理”模块 173
9.3.5“评论管理”模块 173
9.3.6“附件管理”模块 174
9.3.7“链接管理”模块 175
9.3.8“用户管理”模块 175
9.3.9“系统维护”模块 176
9.3.10“数据管理”模块 176
9.3.11“日志管理”模块 177
9.4程序安装与配置 178
9.4.1 phpMyAdmin导入SQL文件 178
9.4.2通过install.php安装 180
9.5本章小结 187
第10章 系统分析与总体设计 188
10.1需求分析 189
10.1.1什么是需求分析 189
10.1.2 FYblog需求分析 190
10.2了解Web 2.0 191
10.2.1什么是Web 2.0 191
10.2.2 Web 2.0的特点 193
10.2.3 Web 2.0的条件 194
10.3基于Ajax的设计思路 194
10.3.1什么是Ajax技术 194
10.3.2 Ajax技术的好处 195
10.4基于Div+CSS的网站构架 196
10.4.1什么是Web标准 196
10.4.2 Web标准有关代码的规范 197
10.4.3基于Div+CSS布局的好处 198
10.5面向对象的程序设计思想 199
10.5.1为什么要学习面向对象 199
10.5.2类、对象和方法 199
10.5.3 FYblog中的面向对象 201
10.5.4数据库操作类 202
10.6本章小结 206
第11章 数据库设计 208
11.1为什么要进行数据库设计 209
11.2数据库设计思想 210
11.2.1数据库设计理念 210
11.2.2数据库的逻辑设计 211
11.3 MySQL数据库的字段类型 213
11.4数据库的物理设计 215
11.4.1 fyaicles表(文章) 215
11.4.2 fy-attachments表(附件) 216
11.4.3 fycategories表(文章分类) 217
11.4.4 fy-comments表(文章评论) 218
11.4.5 fy-links表(友情链接) 218
11.4.6 fy-search表(前台搜索记录 219
11.4.7 fy-sessions表(后台登录session) 219
11.4.8 fy-settings表(系统设置 220
11.4.9 fy-statistics表(站内统计) 220
11.4.10 fy-tags表(文章标签 220
11.4.11 fy-users表(后台账号) 221
11.5数据库存储优化 222
11.5.1数据库设计过程中的优化 222
11.5.2查询过程中的优化 222
11.5.3其他有关的优化 223
11.6 MySQL数据库的查询技巧 223
11.6.1联合查询 223
11.6.2 (*)查询语法 225
11.7 MySQL的存储过程、触发器和视图 227
11.7.1存储过程 228
11.7.2触发器 229
11.7.3视图 229
11.8本章小结 230
第12章 项目核心功能的实现 232
12.1公共函数与类 233
12.1.1组织目录结构 233
12.1.2函数库 233
12.1.3缓存技术 239
12.2前台文章功能 242
12.2.1如何显示文章列表 242
12.2.2博客系统日历 249
12.2.3模糊搜索的原理 253
12.3用户评论功能 255
12.3.1文章评论的查询与显示 255
12.3.2插入评论表情 260
12.3.3评论的提交与过滤 262
12.3.4验证码技术 267
12.4站内数据统计功能 270
12.5本章小结 272
第13章 附件上传与图片处理 273
13.1附件上传 274
13.1.1多文件上传 274
13.1.2上传的实现 275
13.2附件调用 279
13.2.1数据系列化与反系列化 279
13.2.2附件调用 280
13.3图像生成缩略图 283
13.3.1计算缩略图尺寸 283
13.3.2生成图像 284
13.4图像生成水印 287
13.4.1生成水印 287
13.4.2创建图像文件 289
13.5博客相册功能 290
13.5.1图片列表的实现 290
13.5.2图片的浏览 292
13.6本章小结 294
14.1基于cookies和数据库的登录验证 297
14.1.1判断登录状态 297
14.1.2登录验证 299
14.2基于session的登录验证 303
14.3权限系统设计 306
14.4本章小结 308
第15章 后台管理模块 309
15.1文章 管理模块 310
15.1.1模板article.dll 310
15.1.2文章列表及文章搜索 319
15.1.3添加文章 322
15.1.4 FCKeditor编辑器的配置 326
15.1.5批量移动、删除文章 327
15.2模板管理模块 331
15.2.1程序模块temp late.p h 331
15.2.2模板template.d 333
15.3评论管理模块 334
15.3.1设置评论可见状态 334
15.3.2批量处理评论 335
15.4友情链接管理模块 337
15.4.1添加友情链接 337
15.4.2更新友情链接 339
15.4.3显示友情链接列表 339
15.5数据管理模块 340
15.5.1修复数据库 340
15.5.2备份数据库 343
15.5.3 sqldumptable函数详解 345
15.5.4导入RSS数据 349
15.6日志管理模块 352
15.6.1后台操作记录 352
15.6.2后台登录记录 354
15.6.3数据库出错记录 355
15.6.4日志的删除 356
15.6.5日志的读取 358
15.6.6前台搜索记录 360
15.7本章小结 361
第16章 安全部署及优化 363
16.1环境设置与程序安全 364
16.1.1设置PHP安全模式 364
16.1.2设置脚本访问目录 367
16.1.3设置禁用函数 367
16.1.4设置registerlobals 368
16.1.5设置magic-quotespc 369
16.1.6设置报错信息 374
16.1.7 aow-url fopen函数 375
16.2防范注入漏洞 376
16.2.1注入漏洞实例 377
16.2.2注入攻击的原理 378
16.2.3注入漏洞的防范 382
16.3防范文件包含漏洞 384
16.3.1远程文件包含漏洞的原理 384
16.3.2远程文件包含漏洞的防范 385
16.4防范CC攻击 386
16.4.1数据库设计 387
16.4.2程序设计 388
16.5变量初始化 390
16.6防范跨站攻击、灌水、广告 392
16.6.1防范技巧 392
16.6.2跨站攻击的危害 397
16.7本章小结 400
第17章 Ajax概念与原理 402
17.1什么是Ajax 403
17.1.1 Ajax的定义 403
17.1.2 Ajax的诞生与发展 403
17.2为什么需要Ajax 404
17.2.1传统的Web框架 404
17.2.2 Ajax技术框架 405
17.2.3 Ajax的优势 406
17.3 Ajax核心技术 407
17.3.1 JavaScpt 407
17.3.2 XMLHttpRequest 408
17.3.3 DOM 408
17.3.4 XML 408
17.4 Ajax应用实例 409
17.4.1 Google主页 409
17.4.2 Google Maps 409
17.5 Ajax应用场景 411
17.5.1数据验证 411
17.5.2按需读取数据 411
17.5.3自动实时更新页面 412
17.6使用Ajax 412
17.6.1创建XMLHttpRequest对象 413
17.6.2向服务器发送请求 413
17.6.3处理服务器响应 414
17.6.4完整的Ajax框架 414
17.6.5开山之作:“Hello Ajax”程序 416
17.6.6注册信息实时验证实例 418
17.6.7级联目录实例 425
17.6.8自动实时更新页面 428
17.6.9小结 431
17.7 Ajax的不足之处 431
17.8本章小结 432
第18章 Ajax无刷新静态分页 433
18.1分页技术概况 434
18.1.1传统的分页技术 434
18.1.2Ajax静态分页技术 434
18.2分页技术的原理 435
18.2.1查询的技巧 435
18.2.2翻页函数 436
18.3Ajax与PHP之间的参数传递 438
18.3.1准备工作 438
18.3.2参数传递 440
18.4无比流畅的静态翻页 441
18.5滑动翻页技术 444
18.5.1 onMouseOver事件 444
18.5.2滑动翻页 445
18.6本章小结 447
第19章 Ajax与表单处理 448
19.1 Ajax无刷新提交表单 449
19.1.1传统的表单提交方式 449
19.1.2 Ajax提交表单 452
19.2 Ajax与表单验证 456
19.2.1基于客户端的表单验证 456
19.2.2基于服务器端的表单验证 460
19.2.3两种表单验证方式的比较 465
19.3表单实时检测技术 466
19.3.1密码强度检测 466
19.3.2表单实时检测 470
19.4本章小结 474
第20章 Ajax定时更新技术 476
20.1 Ajax定时更新技术的原理 477
20.1.1定时更新的实现 477
20.1.2 setInterval与setTimeout用法 478
20.2 Ajax抽奖程序 481
20.2.1需求分析 482
20.2.2程序设计 483
20.3 Ajax自动保存草稿功能 489
20.3.1 Ajax与Cookies 490
20.3.2使用Cookies保存数据 492
20.4本章小结 493
第21章 Ajax打造人性化的搜索 495
21.1 Ajax无刷新搜索 496
21.1.1数据库设计 496
21.1.2插入数据 497
21.1.3表单处理 499
21.1.4无刷新搜索 502
21.1.5 Ajax搜索的分页 504
21.2.1Ajax自动完成功能 505
21.2.1 Autocomplete框架1.4.3介绍 505
21.2.2建立关键词数据库 506
21.2.3调用JavaScript框架 507
21.2.4用Ajax实现自动完成功能 508
21.3本章小结 512
第22章 Ajax与拖动层 514
22.1 JavaScrpt实现层的弹出与拖动 515
22.1.1设置弹出层的属性 515
22.1.2设置弹出层的样式 519
22.1.3层的弹出 520
22.1.4层的拖动 523
22.2 Ajax与弹出层 525
22.2.1首页模板index.html 525
22.2.2定义弹出窗口属性(show.js) 526
22.2.3响应 Ajax请求(add.php) 527
22.2.4后台处理(do.php) 530
22.2.5 Ajax与弹出层交互 531
22.3定时弹出窗口 533
22.3.1个性化的弹出窗口 533
22.3.2定时弹出窗口 535
22.4本章小结 536
第23章 Ajax改善用户体验综合篇 538
23.1可以动态编辑的文本 539
23.1.1动态编辑文本的实现 539
23.1.2静态模板demo 1.htm1 542
23.1.3处理Ajax请求 545
23.2 Ajax动态联动下拉框 547
23.2.1前台程序demo2.html 547
23.2.2后台处理server.php 549
23.2.3数据库设计 550
23.2.4 Ajax动态联动下拉框效果 551
23.3Ajax升序、降序排列数据 552
23.3.1数据库设计 553
23.3.2前台程序设计 553
23.3.3后台程序设计 554
23.3.4 Ajax升序、降序的效果 556
23.4本章小结 557
第24章 Ajax动态更新页面数据 559
24.1 AJAXRequest 0.7 560
24.2 Ajax与服务器通信,发送请求和处理响应 561
24.2.1调用Ajax框架 561
24.2.2 Ajax发送请求 564
24.2.3处理Ajax请求 565
24.3 Ajax无刷新更新数据 572
24.3.1触发Ajax请求 572
24.3.2动态更新数据 573
24.4本章小结 574