《软件开发实战 PHP开发实战》PDF下载

  • 购买积分:21 如何计算积分?
  • 作  者:软件开发技术联盟编著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2013
  • ISBN:9787302318965
  • 页数:766 页
图书介绍:本书从初学者角度出发,以基础知识为“基石”,以核心技术和高级应用为“梁柱”,最终通过实战项目来检验成果,这就是本书的编写思路。本书突出“基础”、“全面”、“深入”,强调“实战”效果。全书包括初识PHP,PHP环境搭建,PHP语言基础,流程控制语句,函数,字符串,正则表达式,PHP数组,PHP与Web页面交互等内容。

第1篇 新手入门 2

第1章 初识PHP 2

1.1 PHP概述 3

1.1.1 PHP是什么 3

1.1.2 PHP 5的新特性 3

1.1.3 PHP的语言优势 3

1.1.4 PHP语言的发展 4

1.2 PHP与其他语言的比较 5

1.3 PHP语言相关术语 5

1.4资深程序员谈如何学习PHP 7

1.5常用代码编辑工具 8

1.6学习资源 9

1.6.1 PHP参考手册 10

1.6.2 PHP学习讨论 10

1.7成功案例 10

1.8本章小结 11

第2章 PHP环境搭建 12

2.1搭建PHP开发环境的准备工作 13

2.1.1在Windows下搭建PHP开发环境的准备工作 13

2.1.2在Linux下搭建PHP开发环境的准备工作 13

2.2 Apache服务器的安装和配置 13

2.2.1在Windows下安装Apache服务器 13

2.2.2在Linux下安装Apache服务器 16

2.3 PHP的安装和配置 17

2.3.1在Windows下安装PHP 17

2.3.2在Linux下安装PHP 17

2.4 MySQL服务器的安装和配置 18

2.4.1在Windows下安装MySQL服务器 18

2.4.2在Linux下安装MySQL服务器 21

2.5初学者——应用组合包快速搭建PHP环境 22

2.6第一个PHP程序 24

2.6.1使用Macromedia Dreamweaver 8编写源程序 24

2.6.2发布和运行PHP程序 25

2.7环境安装常见问题 25

2.7.1 Apache安装常见问题 25

2.7.2 PHP安装常见问题 26

2.7.3 MySQL安装常见问题 27

2.8实战 27

2.8.1输出系统的当前时间 27

2.8.2输出“明日科技欢迎你” 29

2.8.3输出一张漂亮的图片 29

2.8.4更改Apache服务器的端口号为82 30

2.8.5 Apache服务器的端口号修改后运行第一个PHP程序 30

2.9本章小结 31

2.10学习成果检验 31

第3章 PHP语言基础 32

3.1学习语言基础的重要性 33

3.2 PHP语法基础 33

3.2.1 PHP标识符 33

3.2.2 PHP的注释 34

3.3 PHP的数据类型 34

3.3.1整型 35

3.3.2布尔型 35

3.3.3浮点型 36

3.3.4字符串型 36

3.3.5 null型 38

3.3.6数据类型的转换 39

3.4 PHP常量 40

3.4.1声明和使用常量 40

3.4.2预定义常量 41

3.5 PHP变量 42

3.5.1变量声明及使用 42

3.5.2变量作用域 44

3.5.3可变变量 45

3.5.4预定义变量 46

3.5.5变量的生存周期 47

3.6 PHP运算符 47

3.6.1字符串运算符 47

3.6.2算术运算符 47

3.6.3赋值运算符 48

3.6.4递增或递减运算符 49

3.6.5位运算符 50

3.6.6逻辑运算符 50

3.6.7比较运算符 51

3.6.8条件运算符 52

3.6.9运算符的使用规则 53

3.7 PHP的表达式 53

3.8实战 54

3.8.1判断指定的年份是否为闰年 54

3.8.2检测变量是否为整型 55

3.8.3输出姚明的个人信息 55

3.8.4计算长方形的面积 56

3.8.5比较某一天的产品销量 56

3.9本章小结 57

3.10学习成果检验 57

第4章 流程控制语句 58

4.1学前导读 59

4.1.1什么是算法 59

4.1.2算法的描述方法 59

4.1.3程序的3种控制结构 60

4.2条件控制语句 61

4.2.1 if条件语句 62

4.2.2 switch…case分支控制语句 64

4.3循环控制语句 65

4.3.1 while循环语句 65

4.3.2 do…while循环语句 66

4.3.3 for循环语句 67

4.3.4 foreach循环语句 68

4.4跳转控制语句 69

4.4.1应用break语句跳出循环 69

4.4.2应用continue语句跳出循环 70

4.5实战 71

4.5.1过滤留言信息中的敏感词 71

4.5.2图书信息显示 73

4.5.3应用switch语句设计网站主页 74

4.5.4应用continue语句计算100以内奇数的和 76

4.5.5应用for语句制作一个乘法口诀表 76

4.6本章小结 77

4.7学习成果检验 77

第5章 函数 78

5.1自定义函数 79

5.1.1函数的命名规则 79

5.1.2自定义函数格式 79

5.1.3调用自定义函数 80

5.1.4函数的参数 80

5.1.5函数返回值 81

5.1.6嵌套调用 82

5.1.7递归调用 82

5.2内建函数 83

5.3输出语句 83

5.3.1应用print语句输出字符 83

5.3.2应用echo语句输出字符 84

5.3.3应用printf语句格式化输出字符 85

5.3.4应用sprintf语句格式化输出字符 86

5.4引用文件 87

5.4.1应用include语句引用文件 87

5.4.2应用require语句引用文件 88

5.4.3应用include once语句引用文件 88

5.4.4应用require- once语句引用文件 89

5.4.5 include语句和require语句的使用区别 90

5.4.6 include- onee语句和require- onee语句的使用区别 90

5.5实战 90

5.5.1通过自定义函数防止新闻主题信息出现中文乱码 90

5.5.2应用include语句构建在线音乐网站主页 92

5.5.3对关键字进行高亮显示 93

5.5.4获取上传文件的后缀名 93

5.5.5自定义一个为数字取绝对值的函数 94

5.6本章小结 94

5.7学习成果检验 95

第6章 字符串 96

6.1字符串简介 97

6.2单引号与双引号 97

6.3定界符 98

6.4连接字符串 99

6.5转义、还原字符串 100

6.5.1手动转义、还原字符串 100

6.5.2自动转义、还原字符串 101

6.6获取字符串长度 102

6.7截取字符串 103

6.8比较字符串 104

6.8.1按字节比较 105

6.8.2按自然排序法比较 105

6.8.3指定从源字符串的位置比较 106

6.9检索字符串 106

6.9.1应用strstr()函数检索指定的关键字 106

6.9.2应用substr_count()函数检索子串出现的次数 107

6.10替换子字符串 109

6.11去除字符串中空白字符和特殊字符 112

6.11.1去除字符串左边空白字符和特殊字符 113

6.11.2去除字符串右边空白字符和特殊字符 113

6.11.3去除字符串两边空白字符和特殊字符 113

6.12格式化字符串 114

6.13分割字符串 115

6.14字符串与HTML相互转换 116

6.15实战 117

6.15.1超长文本的分页显示 117

6.15.2控制页面中输出字符串的长度 119

6.15.3应用explode()函数和implode()函数分割和合成字符串 120

6.15.4应用substr()函数截取超长字符串 121

6.15.5统一英文注册用户首字母大写 122

6.16本章小结 122

6.17学习成果检验 123

第7章 正则表达式 124

7.1正则表达式是什么 125

7.2正则表达式常用术语 125

7.3正则表达式语法规则 125

7.3.1行定位符(∧和$) 125

7.3.2字符类([]) 126

7.3.3选择字符(|) 126

7.3.4连字符(-) 126

7.3.5排除字符(∧) 127

7.3.6限定符(?*+{n,m}) 127

7.3.7点字符(.) 127

7.3.8转义字符(\) 128

7.3.9反斜杠(\) 128

7.3.10括号字符(()) 129

7.3.11反向引用 129

7.4 POSIX扩展正则表达式函数 130

7.4.1查找字符串 130

7.4.2替换字符串 130

7.4.3分割字符串 130

7.5 PCRE兼容正则表达式函数 131

7.5.1查找字符串 131

7.5.2替换字符串 132

7.6实战 133

7.6.1通过正则表达式无刷新验证用户注册信息是否合理 133

7.6.2验证E-mail地址格式是否正确 135

7.6.3验证文本框输入的是否为整数 135

7.6.4验证IP地址是否有效 136

7.6.5验证注册信息是否符合要求 137

7.7本章小结 138

7.8学习成果检验 139

第8章 PHP数组 140

8.1数组是什么 141

8.2声明数组 141

8.2.1数组命名规则 141

8.2.2通过PHP函数创建数组 142

8.2.3通过数组标识符“[]”创建数组 143

8.3数组的类型 143

8.3.1数字索引数组 143

8.3.2关联数组 144

8.4输出数组 144

8.5数组的构造 145

8.5.1创建一维数组 145

8.5.2创建二维数组 146

8.6遍历数组 146

8.6.1 foreach结构遍历数组 146

8.6.2 each()函数遍历数组 147

8.6.3 list()函数遍历数组 147

8.6.4 for语句遍历数组 148

8.7合并数组 149

8.8字符串与数组的转换 150

8.8.1应用explode()函数将字符串转换成数组 150

8.8.2应用implode()函数将数组转换成一个新字符串 150

8.9统计数组元素个数 150

8.10数组排序 151

8.10.1数字数组排序 151

8.10.2关联数组排序 153

8.11实战 153

8.11.1向投票系统添加投票选项 153

8.11.2用foreach结构遍历二维数组 154

8.11.3生成在线考试题 155

8.11.4判断元素值是否在数组中 155

8.11.5向数组中添加元素 156

8.12本章小结 157

8.13学习成果检验 157

第9章 日期和时间 158

9.1系统时区设置 159

9.1.1时区的划分 159

9.1.2 PHP中的时区设置 159

9.2 UNIX时间戳 160

9.2.1什么是时间戳 160

9.2.2 UNIX时间戳 160

9.2.3获取指定日期的时间戳 160

9.2.4获取当前时间戳 161

9.2.5将英文文本的日期时间描述解析为UNIX时间戳 162

9.3 PHP日期和时间的处理 162

9.3.1格式化日期和时间 163

9.3.2获取日期和时间信息 164

9.3.3获取本地化的日期和时间 165

9.3.4检验日期和时间的有效性 167

9.4实战 168

9.4.1实现倒计时的功能 168

9.4.2实现生日提示功能 168

9.4.3计算在线考试用时和剩余时间 170

9.4.4网页闹钟 173

9.4.5输出中文格式的日期和时间 173

9.5本章小结 174

9.6学习成果检验 174

第10章 综合实例(一)——注册登录 175

10.1注册及登录验证概述 176

10.1.1用户注册流程 176

10.1.2用户登录流程 176

10.1.3找回密码流程 176

10.1.4程序预览 176

10.2热点关键技术 177

10.2.1防SQL注入技术 177

10.2.2Ajax无刷新验证技术 177

10.2.3验证码技术 178

10.2.4 E-mail激活技术 181

10.2.5应用键盘响应事件验证信息是否合法 181

10.2.6 PHP中操作Cookie技术 183

10.2.7在JavaScript中操作Cookie技术 183

10.2.8用户自动登录技术 184

10.3数据库设计 184

10.3.1数据库设计概述 184

10.3.2封装数据库连接-操作类 184

10.4用户注册 187

10.4.1用户注册功能概述 187

10.4.2注册页面设计 187

10.4.3检测用户名是否被占用 191

10.4.4注册信息处理 191

10.4.5注册用户激活 192

10.4.6免激活用户注册 193

10.5用户登录 194

10.5.1用户登录功能概述 194

10.5.2登录页面设计 194

10.5.3登录处理页 197

10.5.4生成及刷新验证码 198

10.6找回密码 198

10.6.1找回密码功能概述 198

10.6.2找回密码功能实现过程 198

第2篇 数据库篇 202

第11章 MySQL数据库基本操作 202

11.1 MySQL简介 203

11.1.1 MySQL是什么 203

11.1.2 MySQL特点 203

11.1.3 MySQL 5支持的特性 204

11.2启动、连接、断开和停止MySQL服务器 204

11.2.1启动MySQL服务器 204

11.2.2连接和断开MySQL服务器 205

11.2.3停止MySQL服务器 205

11.3使用MySQL命令行操作数据库 206

11.3.1创建数据库 206

11.3.2查看数据库 207

11.3.3选择数据库 207

11.3.4删除数据库 207

11.4使用MySQL命令行操作数据表 207

11.4.1创建数据表 207

11.4.2查看表结构 208

11.4.3修改表结构 209

11.4.4重命名表 210

11.4.5删除表 210

11.5 MySQL语句操作 210

11.5.1插入记录 210

11.5.2浏览数据库记录 211

11.5.3修改记录 211

11.5.4删除记录 212

11.6实战 212

11.6.1管理MySQL数据库及数据表 212

11.6.2创建db_book图书数据库以及图书信息表tb_mrbook 213

11.6.3向tb_mrbook表中添加、修改和删除数据 214

11.6.4用mysqldump命令导出数据库 214

11.6.5用mysql命令将数据库文件导入数据库 215

11.7本章小结 215

11.8学习成果检验 215

第12章 phpMyAdmin图形化管理工具 216

12.1 phpMyAdmin简介 217

12.2 phpMyAdmin的安装和配置 217

12.2.1 Windows系统下phpMyAdmin的安装配置 217

12.2.2 Linux系统下phpMyAdmin的安装配置 218

12.3 phpMyAdmin的使用 219

12.3.1管理数据库 219

12.3.2管理数据表 220

12.3.3管理数据记录 221

12.3.4导入/导出数据 224

12.4实战 225

12.4.1通过phpMyAdmin图形化管理工具修改数据库密码 225

12.4.2使用phpMyAdmin设置编码格式 225

12.4.3通过phpMyAdmin添加服务器新用户 226

12.4.4在phpMyAdmin中删除MySQL服务器登录密码 226

12.4.5手动备份、恢复MySQL数据库 227

12.5本章小结 228

12.6学习成果检验 228

第13章 使用MySQL函数操作数据库 229

13.1 PHP访问MySQL数据库的一般步骤 230

13.2使用MySQL函数库 230

13.2.1连接MySQL服务器 231

13.2.2选择数据库 231

13.2.3执行SQL语句 232

13.2.4应用mysql_ fetch array()函数获取结果集 233

13.2.5应用mysql_fetch object()函数获取结果集 235

13.2.6应用mysql_fetch rows()函数获取结果集 236

13.2.7应用mysql_num rows()函数获取记录数 237

13.2.8关闭连接 238

13.3 PHP操作MySQL数据库 239

13.3.1应用insert命令动态添加公告信息 239

13.3.2应用select命令查询公告信息 241

13.3.3解决截取公告主题乱码问题 243

13.3.4分页显示公告信息 244

13.3.5应用update命令动态编辑公告信息 246

13.3.6应用delete命令动态删除公告信息 248

13.4实战 249

13.4.1输入页码跳转到指定页 249

13.4.2图片的分栏分页显示 251

13.4.3留言板 253

13.4.4高级查询 256

13.4.5分组统计 258

13.4.6使用下拉菜单跳转页面 260

13.5本章小结 262

13.6学习成果检验 263

第14章 ADODB类库 264

14.1 ADODB类库是什么 265

14.2 ADODB支持的数据库 265

14.3 ADODB下载与安装 266

14.4 ADODB类库 267

14.4.1连接数据库函数 267

14.4.2操作数据库函数 268

14.4.3控制结果集存取方式函数 272

14.4.4操作结果集函数 273

14.4.5处理事务函数 275

14.4.6生成HTML表格函数 275

14.4.7生成下拉列表框函数 276

14.4.8实现分页功能函数 277

14.4.9错误处理函数 278

14.5实战 278

14.5.1实现分页 278

14.5.2处理事务 279

14.5.3缓存函数+ADODB动态生成静态页 280

14.5.4添加商品信息 284

14.5.5删除图书信息 287

14.6本章小结 289

14.7学习成果检验 289

第15章 PDO数据库抽象层 290

15.1什么是PDO 291

15.1.1 PDO概述 291

15.1.2 PDO特点 291

15.1.3安装PDO 291

15.2 PDO连接数据库 292

15.2.1 PDO构造函数 292

15.2.2 DSN详解 292

15.3 PDO中执行SQL语句 292

15.3.1 exec()方法 293

15.3.2 query()方法 293

15.3.3预处理语句——prepare()和execute() 294

15.4 PDO中获取结果集 295

15.4.1 fetch()方法 295

15.4.2 fetchAll()方法 296

15.4.3 fetchColumn()方法 297

15.5 PDO中捕获SQL语句中的错误 299

15.5.1使用默认模式——PDO∷ERRMODE SILENT 299

15.5.2使用警告模式——PDO∷ERRMODE WARNING 300

15.5.3使用异常模式——PDO∷ERRMODE EXCEPTION 301

15.6 PDO中错误处理 302

15.6.1 errorCode()方法 302

15.6.2 errorlnfo()方法 303

15.7 PDO中事务处理 304

15.8 PDO中存储过程 305

15.9实战 306

15.9.1明日书店会员注册 306

15.9.2添加留言信息 308

15.9.3查询图书信息 309

15.9.4删除会员信息 310

15.9.5修改商品信息 312

15.10本章小结 316

15.11学习成果检验 316

第16章 综合实例(二)——在线论坛 317

16.1在线论坛概述 318

16.1.1模块概述 318

16.1.2功能结构 318

16.1.3权限分配 318

16.1.4程序预览 319

16.2数据库设计 320

16.2.1数据库设计 320

16.2.2数据表设计 320

16.2.3连接数据库 321

16.3用户注册 321

16.3.1用户注册概述 321

16.3.2检测用户名是否被占用 321

16.3.3用户注册的实现 322

16.4在线论坛前台 323

16.4.1帖子浏览功能概述 323

16.4.2分页显示回复信息 323

16.4.3帖子的发布 326

16.4.4注销用户 328

16.5后台管理 328

16.5.1在线论坛后台管理概述 328

16.5.2通过switch和include语句设计后台首页框架 328

16.5.3栏目管理 329

16.6技术提炼 332

16.6.1分页技术 332

16.6.2网页访问权限设置 334

16.6.3页面刷新技术 334

第3篇 核心技术 336

第17章 会话管理 336

17.1 Cookie管理 337

17.1.1了解Cookie 337

17.1.2创建Cookie 338

17.1.3读取Cookie 339

17.1.4删除Cookie 340

17.1.5 Cookie应用的注意事项 340

17.1.6 Cookie的综合应用——自动登录 341

17.2 Session管理 343

17.2.1了解Session 343

17.2.2启动Session 343

17.2.3应用Session 344

17.2.4删除Session 345

17.2.5 Session的综合应用——通过Session控制页面访问权限 345

17.3 Session与Cookie的比较 347

17.4实战 347

17.4.1通过Cookie实现单点登录 347

17.4.2 Session购物车 349

17.4.3防止页面刷新 353

17.4.4通过Session变量屏蔽刷新页面对计数器的影响 354

17.4.5应用Session变量控制用户登录时间 355

17.5本章小结 357

17.6学习成果检验 357

第18章 图形图像 358

18.1了解GD2函数库 359

18.2参数设置 359

18.3 Jpgraph类库 359

18.3.1 Jpgraph类库简介 360

18.3.2 Jpgraph的安装 360

18.3.3 Jpgraph的配置 360

18.4常用图像处理 361

18.4.1创建画布 361

18.4.2颜色处理 361

18.4.3输出图像 362

18.4.4绘制基本图形 362

18.4.5填充几何图形 363

18.4.6输出文字 364

18.5实战 365

18.5.1创建一个简单的图像 365

18.5.2应用GD2函数在照片上添加文字 366

18.5.3应用图像处理技术生成验证码 366

18.5.4 Jpgraph创建柱状图展示年度收支情况 368

18.5.5 Jpgraph创建折线图统计图书销售走势 369

18.5.6 Jpgraph创建3D饼形图展示部门业绩比较 371

18.6本章小结 371

18.7学习成果检验 372

第19章 文件系统 373

19.1文件处理 374

19.1.1打开文件 374

19.1.2读取文件 375

19.1.3写入文件 377

19.1.4操作文件 378

19.1.5关闭文件 379

19.2文件上传 379

19.2.1配置php…ini文件 379

19.2.2预定义变量$FILES 379

19.2.3文件上传函数 380

19.3文件处理的高级应用 381

19.3.1远程文件的访问 381

19.3.2文件指针 382

19.3.3锁定文件 383

19.4目录处理 384

19.4.1打开目录 384

19.4.2浏览目录 384

19.4.3操作目录 384

19.4.4关闭目录 385

19.5实战 385

19.5.1多图片上传 385

19.5.2通过文本文件统计页面访问量 387

19.5.3规范化的文件上传 388

19.5.4文本文件的分页输出 389

19.5.5从文本文件中读取注册服务条款 390

19.6本章小结 391

19.7学习成果检验 391

第20章 面向对象 392

20.1面向对象的基本概念 393

20.1.1类 393

20.1.2对象 393

20.1.3面向对象编程的三大特点 393

20.2类与对象 393

20.2.1定义类 394

20.2.2实例化类 394

20.2.3使用对象 395

20.2.4成员变量 396

20.2.5成员函数 396

20.3类的权限修饰符 397

20.3.1 public(公有成员) 397

20.3.2 private(私有成员) 398

20.3.3 protected(保护成员) 398

20.4构造函数 399

20.4.1创建构造函数 399

20.4.2调用父类构造函数 400

20.5析构函数 400

20.6使用$this变量访问方法和属性 401

20.7 static关键字 402

20.8 final关键字 403

20.9抽象类 403

20.10接口的使用 405

20.11实战 406

20.11.1面向对象的用户登录身份验证 406

20.11.2面向对象的数据分页显示 407

20.11.3封装一个数据库操作类 409

20.11.4用面向对象生成图像验证码 410

20.11.5封装一个显示页码的分页类 411

20.11.6数据统计类中定义求数字平均值的方法 413

20.11.7封装特殊字符转义类 414

20.12本章小结 414

20.13学习成果检验 414

第21章 PHP加密技术 415

21.1加密技术简介 416

21.1.1 MD5算法 416

21.1.2 SHA1算法 417

21.1.3 DES算法 417

21.1.4 MIME/BASE64的算法 417

21.2 PHP内置加密函数 417

21.2.1使用cRYpt()函数进行加密 418

21.2.2使用md5()函数进行加密 419

21.2.3使用shal ()函数进行加密 419

21.2.4使用base64_encode()函数进行编码 420

21.2.5使用base64_decode()函数进行解码 420

21.3 PHP加密扩展库 420

21.3.1 Mcrypt扩展库 420

21.3.2 Mhash扩展库 422

21.4实战 423

21.4.1用户注册密码的MD5加密 423

21.4.2用户注册密码的crypt加密 424

21.4.3用自定义函数对用户密码进行加密 425

21.4.4隐藏PHP文件扩展名 427

21.4.5禁止用户输入敏感字符 428

21.5本章小结 430

21.6学习成果检验 430

第22章 程序调试与异常处理 431

22.1程序基本调试流程 432

22.2 PHP中的错误类型 432

22.2.1语法错误 432

22.2.2语义错误 434

22.2.3逻辑错误 434

22.2.4注释错误 435

22.2.5运行错误 435

22.3 PHP错误的调试 435

22.3.1 PHP的错误报告 436

22.3.2启动错误报告 436

22.3.3使用print语句调试程序 436

22.3.4应用前缀字符@屏蔽PHP脚本错误提示 437

22.3.5使用错误处理器记录日志 437

22.4 SQL错误的调试 438

22.4.1 PHP与MySQL连接错误 438

22.4.2 SQL语句错误 439

22.5实战 441

22.5.1分析、解决PHP与MySQL连接错误 441

22.5.2解决数据库乱码问题 442

22.5.3封装异常处理类 444

22.5.4使用错误处理器记录日志 445

22.5.5通过phpMyAdmin调试SQL语句中的错误 445

22.6本章小结 446

22.7学习成果检验 446

第23章 综合实例(三)——投票系统 447

23.1投票系统概述 448

23.1.1模块概述 448

23.1.2功能结构 448

23.1.3程序预览 448

23.2数据库设计 449

23.2.1数据库设计 449

23.2.2数据表设计 450

23.2.3连接数据库 450

23.3投票 450

23.3.1用户注册 450

23.3.2用户登录 452

23.3.3投票主题浏览 453

23.3.4投票内容提交 453

23.4投票管理 458

23.4.1投票管理概述 458

23.4.2动态生成投票主题及选项 458

23.4.3删除投票主题与投票内容 461

23.4.4刷新投票结果 462

23.5技术提炼 463

23.5.1通过3D饼形图分析投票结果 463

23.5.2通过柱形图分析投票结果 464

23.5.3 Cookie投票限制 466

23.5.4通过IP限制重复投票 467

第4篇 Web前端开发 470

第24章 PHP与Web页面交互 470

24.1表单 471

24.1.1创建表单 471

24.1.2认识表单元素 471

24.2在Web页中创建表单 474

24.3在Web页中嵌入PHP脚本 475

24.3.1在HTML标记中嵌入PHP脚本 475

24.3.2为表单元素赋值 476

24.4提交表单数据 476

24.4.1 POST方法提交表单数据 476

24.4.2 GET方法提交表单数据 477

24.4.3 POST方法与GET方法的使用区别 478

24.5 PHP全局变量 478

24.5.1 $_POST[]全局变量 478

24.5.2 $_GET[]全局变量 480

24.5.3 $_SESSION[]全局变量 480

24.6对URL传递的参数进行编/解码 480

24.6.1对URL传递的参数进行编码 480

24.6.2对URL编码的字符串进行解码 481

24.7实战 481

24.7.1发布和查看公告信息 482

24.7.2图书借阅 483

24.7.3设计一个用户注册表单并获取用户注册信息 484

24.7.4限制多行文本域输入的字符个数 485

24.7.5获取用户的个人信息 486

24.7.6用户登录 489

24.7.7设置文本框的只读属性 490

24.7.8对超链接传递的数据进行编码 491

24.8本章小结 491

24.9学习成果检验 491

第25章 PHP与JavaScript交互 492

25.1了解JavaScript 493

25.1.1 JavaScript是什么 493

25.1.2 JavaScript能做什么 493

25.2 JavaScript语言基础 493

25.2.1 JavaScript数据类型 493

25.2.2 JavaScript变量 494

25.2.3 JavaScript注释 495

25.3自定义函数 496

25.4 JavaScript脚本嵌入方式 496

25.4.1在HTML中嵌入JavaScript脚本 496

25.4.2应用JavaScript事件调用自定义函数 497

25.4.3在PHP动态网页中引用JS文件 498

25.4.4解决浏览器不支持JavaScript的问题 499

25.5实战 501

25.5.1应用JavaScript脚本制作树状导航菜单 501

25.5.2 PHP与JavaScript脚本的交互应用 503

25.5.3用JavaScript脚本实现年月日的联动 506

25.5.4用JavaScript脚本实现几秒后跳转页面 507

25.5.5确认框confirm()的应用 509

25.6本章小结 511

25.7学习成果检验 511

第26章 XML技术 512

26.1 XML概述 513

26.2 XML语法 513

26.2.1 XML文档结构 513

26.2.2 XML声明 513

26.2.3 XML处理指令 514

26.2.4 XML注释 514

26.2.5 XML元素 514

26.2.6 XML属性 516

26.3创建XML文档 516

26.4 SimpleXML 517

26.4.1创建SimpleXML对象 517

26.4.2遍历所有子元素 518

26.4.3遍历所有属性 519

26.4.4访问特定节点元素和属性 520

26.4.5修改XML数据 520

26.4.6保存XML文档 521

26.5实战 522

26.5.1动态创建XML文档 522

26.5.2动态读取XML文档 524

26.5.3通过XPath查询XML中的数据 525

26.5.4动态添加XML中的数据 527

26.5.5动态删除XML中的数据 528

26.6本章小结 531

26.7学习成果检验 531

第27章 Ajax技术 532

27.1 Ajax概述 533

27.1.1什么是Ajax 533

27.1.2 Ajax的开发模式 533

27.1.3 Ajax的优点 533

27.2 Ajax技术的组成 534

27.2.1 JavaScript脚本语言 534

27.2.2 XMLHttpRequest对象 534

27.2.3 XML语言 537

27.2.4 DOM 538

27.2.5 CSS 538

27.3 Ajax与PHP的交互 538

27.3.1通过GET方式与PHP进行交互 538

27.3.2通过POST方式与PHP进行交互 540

27.4 Ajax开发常见问题 542

27.5实战 543

27.5.1在PHP中应用Ajax技术检测用户名 543

27.5.2在PHP中应用Ajax技术实现博客文章类别添加 544

27.5.3使用jQuery制作级联下拉列表框 546

27.5.4应用Ajax技术删除数据 548

27.5.5应用Ajax技术制作分类列表框 550

27.6本章小结 552

27.7学习成果检验 552

第28章 综合实例(四)——购物车 553

28.1购物车模块概述 554

28.1.1功能概述 554

28.1.2购物车操作流程 554

28.1.3程序预览 554

28.2数据库设计 555

28.2.1创建数据库 555

28.2.2创建数据表 555

28.3首页设计 556

28.3.1首页概述 556

28.3.2首页实现过程 557

28.4登录模块设计 558

28.4.1登录模块概述 558

28.4.2用户注册 558

28.4.3用户登录 560

28.5商品展示模块设计 561

28.5.1商品展示模块概述 561

28.5.2商品展示模块 562

28.6购物车模块设计 563

28.6.1购物车模块概述 563

28.6.2购物车展示 564

28.6.3更改商品数量 565

28.6.4删除商品 566

28.6.5保存购物车 567

28.7技术提炼 569

28.7.1数据库连接、管理和分页类文件 569

28.7.2 Smarty模板配置类文件 571

28.7.3执行类的实例化文件 571

28.7.4 Smarty模板页中的框架技术 572

28.7.5 Ajax无刷新验证技术 572

28.7.6分页技术 574

28.7.7购物车中商品添加技术 574

第5篇 框架应用 578

第29章 Smarty模板技术 578

29.1 Smarty简介 579

29.1.1 Smarty模板引擎 579

29.1.2开发模式与运行流程 579

29.2 Smarty的安装配置 580

29.2.1 Smarty下载和安装 580

29.2.2 Smarty配置 580

29.2.3第一个Smarty程序 581

29.3 Smarty模板设计 582

29.3.1 Smarty模板文件 583

29.3.2注释 583

29.3.3变量 583

29.3.4修饰变量 585

29.3.5流程控制 586

29.3.6内建函数 588

29.4 Smarty程序设计 590

29.4.1 Smarty中的常用方法 590

29.4.2 Smarty的配置变量 591

29.5实战 591

29.5.1通过Smarty实现网页的动静分离 591

29.5.2 Smarty分页类 593

29.5.3网站公告 596

29.5.4 Smarty模板truncate()方法截取字符串 597

29.5.5输出会员信息 600

29.6本章小结 603

29.7学习成果检验 603

第30章 ThinkPHP框架 604

30.1 ThinkPHP简介 605

30.1.1 ThinkPHP框架的特点 605

30.1.2环境要求 605

30.1.3下载ThinkPHP框架 605

30.2 ThinkPHP架构 606

30.2.1 ThinkPHP的目录结构 606

30.2.2自动生成目录 606

30.2.3项目目录部署方案 607

30.2.4命名规范 608

30.2.5项目构建流程 608

30.3 ThinkPHP的配置 610

30.3.1配置格式 610

30.3.2调试配置 611

30.4 ThinkPHP的控制器 611

30.4.1控制器 611

30.4.2跨模块调用 612

30.5 ThinkPHP的模型 615

30.5.1模型的命名 615

30.5.2实例化模型 616

30.5.3属性访问 619

30.5.4连接数据库 619

30.5.5创建数据 622

30.5.6连贯操作 623

30.5.7 CURD操作 624

30.6 ThinkPHP的视图 626

30.6.1模板定义 627

30.6.2模板赋值 627

30.6.3指定模板文件 627

30.6.4特殊字符串替换 628

30.7内置ThinkTemplate模板引擎 629

30.8实战 631

30.8.1用户信息的查询、更新和删除 631

30.8.2用户登录 633

30.8.3商品信息的分页输出 636

30.8.4新闻发布 637

30.8.5带查询条件的分页 641

30.9本章小结 645

30.10学习成果检验 645

第31章 综合实例(五)——明日导航网 646

31.1需求分析 647

31.2系统设计 647

31.2.1系统功能结构 647

31.2.2系统预览 647

31.3数据库设计 648

31.3.1数据库设计 648

31.3.2数据表设计 648

31.3.3连接数据库 649

31.4 ThinkPHP架设项目结构 649

31.4.1下载ThinkPHP框架 650

31.4.2自动生成项目目录 650

31.5明日导航前台页面设计 650

31.5.1页面设计概述 651

31.5.2控制器的创建 652

31.5.3视图中应用到的模板标签 653

31.5.4在视图中创建模板文件 655

31.6明日导航后台管理设计 656

31.6.1后台管理概述 656

31.6.2通过系统配置文件存储后台登录数据 656

31.6.3后台管理架构解析 657

31.6.4 ThinkPHP框架中的分页技术 657

31.6.5后台管理视图中应用的模板标签 658

31.6.6后台登录 659

31.6.7后台管理主页 660

31.6.8高级类别管理 661

31.6.9判断访问用户的权限 664

31.6.10操作提示页面 664

31.7项目发布 665

31.8本章小结 666

第6篇 项目实战 668

第32章 博客管理系统 668

32.1项目描述 669

32.2系统分析 669

32.2.1需求分析 669

32.2.2系统目标 669

32.2.3系统功能结构 670

32.2.4系统流程图 670

32.3软件开发环境 670

32.4数据库与数据表的设计 671

32.4.1数据库分析 671

32.4.2数据库E-R图设计 671

32.4.3创建数据库和数据表 672

32.5首页设计 673

32.5.1首页概述 673

32.5.2首页技术分析 674

32.5.3首页的实现过程 675

32.6用户管理模块设计 676

32.6.1用户管理模块概述 676

32.6.2用户注册 676

32.6.3用户登录 678

32.6.4查询用户信息 679

32.6.5浏览用户信息 680

32.7文章管理模块设计 682

32.7.1文章管理模块概述 682

32.7.2文章管理模块技术分析 682

32.7.3添加文章的实现过程 683

32.7.4文章列表的实现过程 684

32.7.5查看、评论文章的实现过程 686

32.7.6删除文章或评论的实现过程 688

32.8图片上传模块设计 688

32.8.1图片上传模块概述 689

32.8.2图片上传模块技术分析 689

32.8.3图片上传的实现过程 692

32.8.4图片浏览的实现过程 694

32.8.5删除图片的实现过程 696

32.9朋友圈模块设计 696

32.9.1朋友圈模块概述 697

32.9.2朋友圈模块技术分析 697

32.9.3查询好友的实现过程 697

32.10项目发布 699

32.10.1通过个人服务器发布项目 699

32.10.2通过租用空间发布项目 699

32.11开发常见问题与解决 700

32.12本章小结 701

第33章 应用Smarty模板开发电子商务平台 702

33.1项目描述 703

33.2系统分析 703

33.2.1需求分析 703

33.2.2编写项目计划书 703

33.3系统设计 703

33.3.1系统目标 703

33.3.2系统功能结构 704

33.3.3系统流程图 704

33.4系统开发环境 705

33.5数据库与数据表的设计 705

33.5.1数据库分析 705

33.5.2创建数据库和数据表 706

33.6搭建系统框架 707

33.7公共文件设计 708

33.7.1数据库连接文件 708

33.7.2 Smarty配置文件 708

33.7.3 XMLHttpRequest对象文件 709

33.7.4表单样式文件 709

33.8前台首页设计 711

33.9登录模块设计 712

33.9.1用户注册 713

33.9.2用户登录 717

33.9.3找回密码 719

33.10会员信息模块设计 723

33.10.1会员中心 723

33.10.2安全退出 725

33.11商品展示模块 726

33.11.1创建PHP页 726

33.11.2创建模板页 726

33.11.3 JavaScript脚本页面 727

33.12购物车模块设计 728

33.12.1添加商品 728

33.12.2显示购物车 730

33.12.3更改商品数量 731

33.12.4删除商品 732

33.12.5保存购物车 734

33.13收银台模块设计 735

33.13.1显示订单 736

33.13.2填写订单 736

33.13.3处理订单 737

33.13.4反馈订单 739

33.13.5查询订单 739

33.14后台首页设计 741

33.14.1后台首页布局 742

33.14.2 DIV+JavaScript+CSS实现树状菜单 742

33.15 类别管理模块设计 743

33.15.1添加类别 743

33.15.2查看类别 745

33.16订单管理模块设计 749

33.17开发的常见问题 751

33.17.1解决Ajax的乱码问题 751

33.17.2使用JS脚本获取、输出标签内容 751

33.17.3使用浮动框架做关联菜单 752

33.17.4禁用页面缓存 752

33.17.5在新窗口中使用Session 752

33.17.6防止站外链接 753

33.17.7判断上传文件格式 753

33.18网站运行错误分析 753

33.18.1数据库导致的错误 754

33.18.2 Smarty模板的配置错误 754

33.19本章小结 755

附录A PHP编码规则 756