程序天下:PHP +Ajax Web 2.0编程技术与项目开发大全

程序天下:PHP +Ajax Web 2.0编程技术与项目开发大全
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
作者:
2008-06
版次: 1
ISBN: 9787121062247
定价: 65.00
装帧: 平装
开本: 16开
纸张: 胶版纸
页数: 574页
字数: 918千字
正文语种: 简体中文
  • 系统、具体地介绍了PHP编程基础、项目开发技巧,以及PHP与Ajax的交互设计。《程序天下?PHP+AjaxWeb2.0编程技术与项目开发大全》共分24章,以实际的项目作为例子贯穿始终,内容涵盖了PHP项目开发的各个方面,从基础语法、数据库基础、需求分析、数据库设计到附件处理、评论处理、站内搜索、登录验证、后台管理、安全部署等各方面的实用技巧。此外,《程序天下?PHP+AjaxWeb2.0编程技术与项目开发大全》重点介绍了Ajax技术的应用。《程序天下?PHP+AjaxWeb2.0编程技术与项目开发大全》最大的特色在于每一章中涉及的例子都经过精挑细选,具有很强的针对性,力求让读者轻松掌握PHP项目开发的技巧和Ajax改善用户体验的各种技术,学习尽可能多的知识。 叶新伟,致力于Web开发、网络安全、UNIX系统方面的研究,精通UNIX平台下的基于PHP+MySQL+Apache模式的设计与开发。先后供职于多家互联网企业,具有5年的项目经验,曾负责多个大型Web系统的开发,包括流量千万级的博客空间等Web2.0产品。 第一篇PHP开发入门
    第1章开发环境配置
    在开始学习PHP之前,需要搭建开发环境。本章将结合实际项目经验来谈在Windows环境下配置Apache+PHP+MySQL+phpMyAdmin,在Windows环境下配置IIS+PHP+MySQL+phpMyAdmin,以及在Linux环境下配置Apache+PHP+MySQL+phpMyAdmin等。
    1.1在Windows环境下配置IIS+PHP+MySQL+phpMyAdmin
    1.1.1安装IIS
    1.1.2安装PHP
    1.1.3PHP设置
    1.1.4安装MySQL
    1.1.5安装ZendOptimizer
    1.1.6安装phpMyAdmin
    1.2在Windows环境下配置Apache+PHP+MySQL+phpMyAdmin
    1.3LAMP平台的搭建
    1.3.1安装Apache
    1.3.2安装MySQL
    1.3.3安装PHP
    1.3.4搭建快速开发平台
    1.4本章小结
    第2章PHP语法
    前面的章节讲解了PHP的运行平台的搭建和配置。本章将在这些知识的基础上讲解编程中的一些概念和基本语法。本章的内容包括PHP语法的格式、注释、变量、运算符、数据类型、类型强制转换等知识。通过对本章的学习,可以对该语言有一个大致的了解,编写一些简单程序。
    2.1PHP入门
    2.1.1第一个PHP网页
    2.1.2网页中嵌入PHP程序
    2.1.3语法格式
    2.1.4PHP中的注释
    2.2PHP的常量与变量
    2.2.1什么是变量和常量
    2.2.2定义变量
    2.2.3定义常量
    2.2.4变量的作用域
    2.2.5变量的输出
    2.2.6PHP的表单变量
    2.2.7PHP的环境变量
    2.2.8PHP的系统常量
    2.3PHP的运算符
    2.3.1算术运算符
    2.3.2条件运算符与逻辑运算符
    2.3.3字符串运算符
    2.3.4PHP的运算优先级
    2.4PHP的数据类型
    2.4.1常用数据类型
    2.4.2特殊的数据类型
    2.4.3数据类型的查看和验证
    2.5PHP数据类型的转换
    2.5.1转换成整型
    2.5.2转换成字符串型
    2.5.3转换成浮点型
    2.5.4转换成布尔型
    2.5.5强制类型转换
    2.6实例
    2.6.1静态变量使用实例
    2.6.2数学运算符与优先级实例
    2.7小结
    第3章PHP的常用语句
    本章将重点讲解PHP的语句。一些运算符和表达式,后面用分号隔开,能够完成一定的逻辑功能,就构成一个语句。复杂的程序都是由简单的语句构成的。流程控制语句是本章的重点,程序中复杂的功能都是通过流程控制语句来完成的。通过本章的学习,读者需要掌握流程控制语句、常用的表达式、文件包含等PHP编程技巧。
    3.1流程控制语句
    3.1.1if条件语句
    3.1.2switch条件语句
    3.1.3for循环语句
    3.1.4while循环语句
    3.1.5dowhile循环语句
    3.1.6转移控制语句:continue
    3.1.7转移控制语句:break
    3.1.8转移控制语句:return
    3.2流程控制语句实例
    3.2.1实例:输出表格
    3.2.2实例:输出九九乘法口诀表
    3.2.3实例:解一元二次方程
    3.3文件包含
    3.3.1使用require和require_once语句包含文件
    3.3.2使用include和include_once语句包含文件
    3.4小结
    第4章函数
    PHP程序中会调用各种函数,函数实现了程序中的各种功能,也实现了代码的结构化。函数分为系统函数和自定义函数两种。系统函数是PHP自带的函数,系统函数无法实现的功能需要自己编写自定义函数。本章重点介绍函数的调用和自定义函数的编写。
    4.1函数的定义与调用
    4.1.1函数的调用
    4.1.2自定义函数
    4.1.3自定义函数实例
    4.2数学函数
    4.2.1rand与srand产生随机数
    4.2.2随机数生成实例:生成数字代码
    4.2.3数学函数
    4.3时间函数
    4.3.1获得日期时间信息函数getdate
    4.3.2获得当前时间函数gettimeofday
    4.3.3日期验证函数checkdate
    4.3.4格式化本地日期时间函数date
    4.3.5获得本地化时间戳函数mktime
    4.4小结
    第5章数组
    数组就是一组具有相同数据类型的变量的集合。在程序中调用这些变量时,使用相同的变量名和键。数组中的每一个变量称作数组的一个元素。使用数组,可以用循环语句来方便地处理程序中大量的数据。本章将讲解数组相关的函数和编程。
    5.1数组的操作
    5.1.1数组的理解
    5.1.2数组的建立
    5.1.3数组的访问
    5.1.4数组的遍历
    5.1.5数组的索引与键值操作技巧
    5.2数组的常用函数
    5.2.1使用sort和rsort对数组排序
    5.2.2使用asort和arsort对数组排序
    5.2.3使用array_multisort对数组进行排序
    5.2.4数组与堆栈
    5.2.5使用array_shift和array_unshift函数访问数组
    5.2.6数组查找函数array_search
    5.2.7其他数组函数
    5.3数组应用实例
    5.3.1实例:数组的排序与访问
    5.3.2实例:数组的访问
    5.4小结
    第6章字符串
    在实际编程时,常常需要进行字符串处理。PHP提供了非常丰富的字符串处理函数,而正则表达式的使用,可以更加灵活地对字符串进行模糊处理。使用正则表达式对于处理复杂的字符串非常便利。本章讲解字符串的常用操作和正则表达式的使用。
    6.1字符串的理解
    6.2字符串的显示与格式化
    6.2.1echo和print输出字符串
    6.2.2sprintf字符串格式化输出
    6.3字符串的常用操作
    6.3.1字符串重复函数str_repeat
    6.3.2字符串替换函数str_replace
    6.3.3字符串分解操作函数str_split
    6.3.4字符串分解成单词函数str_word_count
    6.3.5字符串查找操作函数strstr
    6.3.6字符串的长度函数strlen
    6.3.7获得字符串函数substr
    6.4小结
    第二篇PHP与MySQL数据库编程
    第7章MySQL数据库
    Linux+Apache+MySQL+PHP方案是一个非常理想的网站解决方案。MySQL数据库是一个功能强大的数据库管理系统,在PHP网站中有着非常优秀的表现。在网站中,PHP程序是将网站的内容存储在MySQL数据库中。用户在访问网页时,查询数据库内容再生成HTML网页发送到浏览器。本章讲述MySQL的管理、SQL语句等数据库操作基础知识。
    7.1数据库的启动与关闭
    7.1.1服务管理方式启动与关闭MySql服务
    7.1.2命令行方式管理MySql服务
    7.2phpMyAdmin管理MySQL数据库
    7.2.1登录和使用phpMyAdmin
    7.2.2添加和删除数据库
    7.3在数据库中创建表
    7.3.1数据表的理解
    7.3.2MySQL的数据类型
    7.3.3建立数据库模型
    7.3.4在phpMyAdmin中创建表
    7.4用phpMyAdmin管理表中的数据
    7.4.1phpMyAdmin添加数据
    7.4.2phpMyAdmin查看数据
    7.5权限管理
    7.5.1添加和删除用户
    7.5.2设置数据库用户的权限
    7.6MySQL命令行管理MySQL数据库
    7.6.1登录MySQL命令行
    7.6.2新建与删除数据库
    7.6.3新建或删除数据库表
    7.7用SQL语句访问MySQL数据库
    7.7.1插入数据
    7.7.2数据查询
    7.7.3数据更新
    7.7.4数据删除
    7.7.5查询数据的分组与处理
    7.8MySQL的内置函数
    7.9小结
    第8章PHP和MySQL的应用
    在网站项目中,网站的数据是存放在数据库中的。PHP+MySQL是一个非常好的网站解决方案,具有非常好的性能和安全性。在PHP网站中,程序常常进行数据库访问,数据库访问是通过SQL语句完成的。本章讲解PHP对MySQL数据库进行连接、表单使用、数据查询等方面的内容。本章中使用的数据库,是上一章建立的“db_stu”数据库。在进行本章学习之前,需要按照上一章的内容建立数据库。
    8.1MySQL的连接和选择数据库
    8.1.1连接到MySQL服务器
    8.1.2选择数据库
    8.1.3网站配置文件
    8.2数据库的查询操作
    8.2.1执行SQL语句
    8.2.2获取查询结果的记录数
    8.2.3获取查询结果的某一条记录
    8.2.4逐行获取记录集中的每一行数据
    8.3数据库访问实例
    8.3.1院系的添加
    8.3.2院系管理列表
    8.3.3院系的删除
    8.3.4院系编辑网页
    8.3.5添加班级
    8.3.6数据分页显示
    8.3.7数据列表的排序
    8.4小结
    第三篇商用Blog系统开发详解
    第9章项目简介及功能演示
    本章将从一个实际的项目谈起,这个项目是一个基于Div+CSS+Ajax+PHP+MySQL+Smarty的博客系统,为了方便说明,此处把它命名为FYblog。在以后的章节中,将以它为实例逐步详细、深入地讲解PHP项目开发,讲解流行的Ajax技术等。
    本章介绍FYblog的主要功能和特点,它是学习后面章节的基础。FYblog是一个个性鲜明、技术含量较高的系统,然而系统本身并不是学习的主要目的,其中的思路、程序逻辑、实现方法、原理才是最重要的。“千里之行,始于足下”。因此,一个好的学习态度是成功的开始。
    9.1项目简介
    9.1.1项目优点
    9.1.2项目不足
    9.2前台体验
    9.2.1前台首页
    9.2.2文章显示与评论
    9.2.3标签、搜索、日历等模块
    9.2.4导航链接
    9.3后台功能
    9.3.1登录界面
    9.3.2“文章管理”模块
    9.3.3“模板管理”模块
    9.3.4“分类管理”模块
    9.3.5“评论管理”模块
    9.3.6“附件管理”模块
    9.3.7“链接管理”模块
    9.3.8“用户管理”模块
    9.3.9“系统维护”模块
    9.3.10“数据管理”模块
    9.3.11“日志管理”模块
    9.4程序安装与配置
    9.4.1phpMyAdmin导入SQL文件
    9.4.2通过install.php安装
    9.5本章小结
    第10章系统分析与总体设计
    在前面章节中对平台搭建进行了详细的介绍,平台搭建与环境配置是项目开发的基础,合理的配置可以提高工作效率,有助于程序的调试与编译。环境配置好之后,就可以进行项目实践了。从本章起,将逐步介绍项目开发的流程。为了讲解方便,本章及以后章节中统一基于Windows2003下的Apache2.2.4+MySQL5.0.37+PHP5.21+phpMyAdmin2.10环境进行介绍。
    10.1需求分析
    10.1.1什么是需求分析
    10.1.2FYblog需求分析
    10.2了解Web2.0
    10.2.1什么是Web2.0
    10.2.2Web2.0的特点
    10.2.3Web2.0的条件
    10.3基于Ajax的设计思路
    10.3.1什么是Ajax技术
    10.3.2Ajax技术的好处
    10.4基于Div+CSS的网站构架
    10.4.1什么是Web标准
    10.4.2Web标准有关代码的规范
    10.4.3基于Div+CSS布局的好处
    10.5面向对象的程序设计思想
    10.5.1为什么要学习面向对象
    10.5.2类、对象和方法
    10.5.3FYblog中的面向对象
    10.5.4数据库操作类
    10.6本章小结
    第11章数据库设计
    从本章起将开始从实践的角度来谈PHP开发。在进行项目开发时,数据库的设计往往是第一步,因为程序离不开数据库,如果数据库没有设计好,后面的程序调试、运行都无从谈起。而且数据库的设计和需求分析是一脉相承的,需求分析做得越仔细,数据库的设计也就越精确和快速,后面甚至不需要做过多的调整。如果前面的需求分析不够完善,或者不够细致,那么做数据库设计时一般会感觉无从下手,有可能反复多次修改依然不太满意。需求分析是思路上的一种总体规划,而数据库从某种意义上可以说是程序逻辑上的一种规划。
    11.1为什么要进行数据库设计
    11.2数据库设计思想
    11.2.1数据库设计理念
    11.2.2数据库的逻辑设计
    11.3MySQL数据库的字段类型
    11.4数据库的物理设计
    11.4.1fy_articles表(文章)
    11.4.2fy_attachments表(附件)
    11.4.3fy_categories表(文章分类)
    11.4.4fy_comments表(文章评论)
    11.4.5fy_links表(友情链接)
    11.4.6fy_search表(前台搜索记录)
    11.4.7fy_sessions表(后台登录session)
    11.4.8fy_settings表(系统设置)
    11.4.9fy_statistics表(站内统计)
    11.4.10fy_tags表(文章标签)
    11.4.11fy_users表(后台账号)
    11.5数据库存储优化
    11.5.1数据库设计过程中的优化
    11.5.2查询过程中的优化
    11.5.3其他有关的优化
    11.6MySQL数据库的查询技巧
    11.6.1联合查询
    11.6.2IN(…)查询语法
    11.7MySQL的存储过程、触发器和视图
    11.7.1存储过程
    11.7.2触发器
    11.7.3视图
    11.8本章小结
    第12章项目核心功能的实现
    前一章中详细讲解了数据库设计技巧,数据库设计是项目开发过程中一个重要组成部分。数据库设计完成之后,就可以开始编码任务了。编码的目的当然是为了实现程序的功能,满足客户的需求。本章将以FYblog项目为实例,一步步讲解项目中各功能模块是如何实现的。
    12.1公共函数与类
    12.1.1组织目录结构
    12.1.2函数库
    12.1.3缓存技术
    12.2前台文章功能
    12.2.1如何显示文章列表
    12.2.2博客系统日历
    12.2.3模糊搜索的原理
    12.3用户评论功能
    12.3.1文章评论的查询与显示
    12.3.2插入评论表情
    12.3.3评论的提交与过滤
    12.3.4验证码技术
    12.4站内数据统计功能
    12.5本章小结
    第13章附件上传与图片处理
    在FYblog系统中,附件上传是在后台进行的,本来这些知识应该在后面的章节中进行讲解。但是,前台也涉及比较多的附件处理,因此,本章将详细讲解附件上传与图片处理。本章中涉及的技术是很重要的。
    13.1附件上传
    13.1.1多文件上传
    13.1.2上传的实现
    13.2附件调用
    13.2.1数据系列化与反系列化
    13.2.2附件调用
    13.3图像生成缩略图
    13.3.1计算缩略图尺寸
    13.3.2生成图像
    13.4图像生成水印
    13.4.1生成水印
    13.4.2创建图像文件
    13.5博客相册功能
    13.5.1图片列表的实现
    13.5.2图片的浏览
    13.6本章小结
    第14章登录验证与权限系统
    登录验证是指网站后台的访问权限验证,而权限系统是指用户组权限划分,二者是不同的两个概念。登录证的作用就不必多说了,网站后台绝对不允许任何人访问到。而权限系统的目的是将用户按照权限高低划分不同的等级,不同的等级具有不同的操作权限。权限系统不仅仅限于后台,譬如一个论坛,前台就得有权限划分,一般有版主、超级版主、管理员、超级管理员、游客、正式注册会员等不同等级。
    14.1基于cookies和数据库的登录验证
    14.1.1判断登录状态
    14.1.2登录验证
    14.2基于session的登录验证
    14.3权限系统设计
    14.4本章小结
    第15章后台管理模块
    前面几章介绍了FYblog的一些基本功能,如文章显示、附件处理、登录验证等,这些基本上都是前台功能。实际上FYblog系统后台有着比较强大的功能,涉及文章管理、附件处理、评论管理、模板编辑、数据备份、日志管理等各个方面。而这些功能有很强的实用性,在实际的项目中是随处可见的,因此本章将以FYblog系统为实例,逐一介绍PHP项目中各种后台功能的实现技巧。
    15.1文章管理模块
    15.1.1模板article.dll
    15.1.2文章列表及文章搜索
    15.1.3添加文章
    15.1.4FCKeditor编辑器的配置
    15.1.5批量移动、删除文章
    15.2模板管理模块
    15.2.1程序模块template.php
    15.2.2模板template.dll
    15.3评论管理模块
    15.3.1设置评论可见状态
    15.3.2批量处理评论
    15.4友情链接管理模块
    15.4.1添加友情链接
    15.4.2更新友情链接
    15.4.3显示友情链接列表
    15.5数据管理模块
    15.5.1修复数据库
    15.5.2备份数据库
    15.5.3sqldumptable函数详解
    15.5.4导入RSS数据
    15.6日志管理模块
    15.6.1后台操作记录
    15.6.2后台登录记录
    15.6.3数据库出错记录
    15.6.4日志的删除
    15.6.5日志的读取
    15.6.6前台搜索记录
    15.7本章小结
    第16章安全部署及优化
    谈到Web程序开发,就不能不谈到Web安全。Web安全可以简单地理解为网站安全,它是网络安全领域里面的一个重要组成部分。Web程序存在的安全问题,直接危及管理后台、数据库、服务器的安全,甚至威胁到整个内部网络的安全。一旦黑客发现了Web漏洞的利用方法,就可以突破程序的安全防线,非法进入后台,查看数据库里的机密数据(如会员资料等)。而且不仅仅如此,黑客还可以上传脚本后门(通常称作webshell),利用webshell可以完全控制网站,可以下载网站源代码,还可以结合一些系统漏洞和系统的安全设置问题来提升权限。
    16.1环境设置与程序安全
    16.1.1设置PHP安全模式
    16.1.2设置脚本访问目录
    16.1.3设置禁用函数
    16.1.4设置register_globals
    16.1.5设置magic_quotes_gpc
    16.1.6设置报错信息
    16.1.7allow_url_fopen函数
    16.2防范注入漏洞
    16.2.1注入漏洞实例
    16.2.2注入攻击的原理
    16.2.3注入漏洞的防范
    16.3防范文件包含漏洞
    16.3.1远程文件包含漏洞的原理
    16.3.2远程文件包含漏洞的防范
    16.4防范CC攻击
    16.4.1数据库设计
    16.4.2程序设计
    16.5变量初始化
    16.6防范跨站攻击、灌水、广告
    16.6.1防范技巧
    16.6.2跨站攻击的危害
    16.7本章小结
    第四篇使用Ajax改善用户体验
    第17章Ajax概念与原理
    Ajax理念的出现,揭开了无刷新更新页面时代的序幕,并有代替传统Web开发中采用表单提交方式来更新Web页面的趋势。Ajax是具有变革性的,它使开发者得以摆脱原有单调的开发模式,从而开发出更易用、交互性更强的Web应用程序。目前,Ajax的一些成功应用有:Google主页、GoogleSuggest、GoogleMaps、Gmail等,无论在视觉效果还是易用性上都给人带来强烈的冲击力。因此,Ajax的出现具有里程碑式的意义,并在短时间内成为Web开发领域炙手可热的技术。而JavaScript是Ajax的核心技术之一,在Ajax技术中起着不可替代的作用。本章将利用有限的篇幅,力求向读者展示Ajax的风采,以及JavaScript在Ajax中所扮演的重要角色。
    17.1什么是Ajax
    17.1.1Ajax的定义
    17.1.2Ajax的诞生与发展
    17.2为什么需要Ajax
    17.2.1传统的Web框架
    17.2.2Ajax技术框架
    17.2.3Ajax的优势
    17.3Ajax核心技术
    17.3.1JavaScript
    17.3.2XMLHttpRequest
    17.3.3DOM408
    17.3.4XML408
    17.4Ajax应用实例
    17.4.1Google主页
    17.4.2GoogleMaps
    17.5Ajax应用场景
    17.5.1数据验证
    17.5.2按需读取数据
    17.5.3自动实时更新页面
    17.6使用Ajax
    17.6.1创建XMLHttpRequest对象
    17.6.2向服务器发送请求
    17.6.3处理服务器响应
    17.6.4完整的Ajax框架
    17.6.5开山之作:“Hello,Ajax”程序
    17.6.6注册信息实时验证实例
    17.6.7级联目录实例
    17.6.8自动实时更新页面
    17.6.9小结
    17.7Ajax的不足之处
    17.8本章小结
    第18章Ajax无刷新静态分页
    在上一章中对Ajax与服务器通信、发送请求和处理响应等做了详细介绍。理解Ajax技术的关键是理解XMLHttpRequest对象,熟悉文档对象模型DOM。
    实际上,Ajax的用途非常广泛,在程序开发过程中,翻页技术的使用是非常普遍的,本章通过讲解Ajax静态翻页技术,帮助读者通过实际的案例理解Ajax的应用技巧。本章实例都在第12章建立的FYblog项目的基础上创建。
    18.1分页技术概况
    18.1.1传统的分页技术
    18.1.2Ajax静态分页技术
    18.2分页技术的原理
    18.2.1查询的技巧
    18.2.2翻页函数
    18.3Ajax与PHP之间的参数传递
    18.3.1准备工作
    18.3.2参数传递
    18.4无比流畅的静态翻页
    18.5滑动翻页技术
    18.5.1onMouseOver事件
    18.5.2滑动翻页
    18.6本章小结
    第19章Ajax与表单处理
    前面两章中对Ajax的一些应用做了讲解,其中主要讲解了Ajax的GET方式的请求。从本章起将介绍POST方式的请求。表单在Web程序中极为常见,而且起着非常重要的作用。表单处理有很多细节问题,比如表单验证、密码强度实时检测等。Ajax技术的出现使得这些细节问题处理起来更方便,更加人性化。因此,本章将以表单为出发点,介绍Ajax技术在表单处理方面的一些技巧,以及POST方式发送请求的技巧。本章大部分地方以FYblog中的有关代码为例子。
    19.1Ajax无刷新提交表单
    19.1.1传统的表单提交方式
    19.1.2Ajax提交表单
    19.2Ajax与表单验证
    19.2.1基于客户端的表单验证
    19.2.2基于服务器端的表单验证
    19.2.3两种表单验证方式的比较
    19.3表单实时检测技术
    19.3.1密码强度检测
    19.3.2表单实时检测
    19.4本章小结
    第20章Ajax定时更新技术
    本章将要介绍的是Ajax又一个很实用的功能,即Ajax定时更新技术。所谓定时更新技术,简单地说,是指采用Ajax技术定时地发出请求,或者定时地更新页面某一节点的数据。此处谈到的定时是指每间隔一定的时间更新一次或者指定更新的次数。严格地说,这种技术的实现基础是JavaScript的定时器,然而Ajax技术使得这种技术更有价值,所以这种技术在很多情况下会用到。
    Ajax定时更新技术的作用很大,可以用在动态显示时间、随机显示新闻、抽奖程序、发帖自动保存草稿、聊天室定期刷新页面等场合。当然,不仅仅限于这些,掌握了Ajax定时更新技术,还可以实现更多的效果,做更多的事情。因此,本章将系统地介绍Ajax定时更新技术。
    20.1Ajax定时更新技术的原理
    20.1.1定时更新的实现
    20.1.2setInterval与setTimeout用法
    20.2Ajax抽奖程序
    20.2.1需求分析
    20.2.2程序设计
    20.3Ajax自动保存草稿功能
    20.3.1Ajax与Cookies
    20.3.2使用Cookies保存数据
    20.4本章小结
    第21章Ajax打造人性化的搜索
    用过Google搜索的人应该都会发现,它具有自动完成功能。当用户输入一个关键字之后,输入框会列出与这个关键字有关的关键词,并且显示每个关键词有多少条搜索记录。这种自动完成功能是一个新技术,它使得搜索显得非常人性化和智能化,可以为用户提供方便,在一定程度上改善了用户体验。然而,搜索不仅仅Google有,现在各种网站上基本都有站内搜索入口,比如各种论坛、博客系统、文章系统等。
    21.1Ajax无刷新搜索
    21.1.1数据库设计
    21.1.2插入数据
    21.1.3表单处理
    21.1.4无刷新搜索
    21.1.5Ajax搜索的分页
    21.2Ajax自动完成功能
    21.2.1Autocomplete框架1.4.3介绍
    21.2.2建立关键词数据库
    21.2.3调用JavaScript框架
    21.2.4用Ajax实现自动完成功能
    21.3本章小结
    第22章Ajax与拖动层
    随着Ajax技术的不断成熟,用户体验方面的创意也是越来越丰富。网络上有许多开源的JavaScrpt框架,这些框架与Ajax结合可以实现非常复杂的效果,比如弹出层、Ajax拖拽提交、淡入淡出的菜单,以及一些更复杂的UI创意。当然,这些效果也并不是都用到了Ajax技术,有些是完全的JavaScrpt特效。常见的JavaScrpt框架有很多,比如基于Prototype的script.aculo.us、YahooUI,以及JQuery的各种插件等。这些JavaScrpt框架可以在很大的程度上改善用户体验,使得Web程序更具有创意和表现力,更有特色和吸引力,再加上Ajax的配合,Web程序已经与传统的表现方式有着本质的区别。
    22.1JavaScrpt实现层的弹出与拖动
    22.1.1设置弹出层的属性
    22.1.2设置弹出层的样式
    22.1.3层的弹出
    22.1.4层的拖动
    22.2Ajax与弹出层
    22.2.1首页模板index.html
    22.2.2定义弹出窗口属性(show.js)
    22.2.3响应Ajax请求(add.php)
    22.2.4后台处理(do.php)
    22.2.5Ajax与弹出层交互
    22.3定时弹出窗口
    22.3.1个性化的弹出窗口
    22.3.2定时弹出窗口
    22.4本章小结
    第23章Ajax改善用户体验综合篇
    前面几章中介绍了Ajax技术的一些常见用法,但是Ajax技术的用法很多,而且很多时候体现在一些细节上。对于Ajax技术的应用很难都一一介绍到,但是如果举一反三,能够灵活贯通,应用Ajax技术时就可以随心所欲了。凡是适合使用Ajax的地方,就可以考虑使用它。网络上对于Ajax的讨论和研究实在太多了,这在一定程度上增加了Ajax的神秘性和复杂性,实际上,Ajax并不神秘。本章将结合具体的实例,再介绍Ajax技术的几种用法,作为对前面章节的一些补充和总结。在本章的例子中,实现的功能并不是最重要的,其思路及实现过程才是值得注意的。
    23.1可以动态编辑的文本
    23.1.1动态编辑文本的实现
    23.1.2静态模板demo1.html
    23.1.3处理Ajax请求
    23.2Ajax动态联动下拉框
    23.2.1前台程序demo2.html
    23.2.2后台处理server.php
    23.2.3数据库设计
    23.2.4Ajax动态联动下拉框效果
    23.3Ajax升序、降序排列数据
    23.3.1数据库设计
    23.3.2前台程序设计
    23.3.3后台程序设计
    23.3.4Ajax升序、降序的效果
    23.4本章小结
    第24章Ajax动态更新页面数据
    在FYblog系统中,前台部分用到了相当多的Ajax技术,使得前台有且仅有一个静态页面来完成用户交互及数据传输。Ajax的重要用途之一是动态更新页面数据,即在不刷新、不跳转的情况下,更新页面局部的内容。本章将结合FYblog系统,以实例的形式介绍Ajax动态更新页面数据的一些技巧。值得注意的是,理解Ajax如何与PHP进行交互也是很关键的。
    24.1AJAXRequest
    24.2Ajax与服务器通信,发送请求和处理响应
    24.2.1调用Ajax框架
    24.2.2Ajax发送请求
    24.2.3处理Ajax请求
    24.3Ajax无刷新更新数据
    24.3.1触发Ajax请求
    24.3.2动态更新数据
    24.4本章小结
  • 内容简介:
    系统、具体地介绍了PHP编程基础、项目开发技巧,以及PHP与Ajax的交互设计。《程序天下?PHP+AjaxWeb2.0编程技术与项目开发大全》共分24章,以实际的项目作为例子贯穿始终,内容涵盖了PHP项目开发的各个方面,从基础语法、数据库基础、需求分析、数据库设计到附件处理、评论处理、站内搜索、登录验证、后台管理、安全部署等各方面的实用技巧。此外,《程序天下?PHP+AjaxWeb2.0编程技术与项目开发大全》重点介绍了Ajax技术的应用。《程序天下?PHP+AjaxWeb2.0编程技术与项目开发大全》最大的特色在于每一章中涉及的例子都经过精挑细选,具有很强的针对性,力求让读者轻松掌握PHP项目开发的技巧和Ajax改善用户体验的各种技术,学习尽可能多的知识。
  • 作者简介:
    叶新伟,致力于Web开发、网络安全、UNIX系统方面的研究,精通UNIX平台下的基于PHP+MySQL+Apache模式的设计与开发。先后供职于多家互联网企业,具有5年的项目经验,曾负责多个大型Web系统的开发,包括流量千万级的博客空间等Web2.0产品。
  • 目录:
    第一篇PHP开发入门
    第1章开发环境配置
    在开始学习PHP之前,需要搭建开发环境。本章将结合实际项目经验来谈在Windows环境下配置Apache+PHP+MySQL+phpMyAdmin,在Windows环境下配置IIS+PHP+MySQL+phpMyAdmin,以及在Linux环境下配置Apache+PHP+MySQL+phpMyAdmin等。
    1.1在Windows环境下配置IIS+PHP+MySQL+phpMyAdmin
    1.1.1安装IIS
    1.1.2安装PHP
    1.1.3PHP设置
    1.1.4安装MySQL
    1.1.5安装ZendOptimizer
    1.1.6安装phpMyAdmin
    1.2在Windows环境下配置Apache+PHP+MySQL+phpMyAdmin
    1.3LAMP平台的搭建
    1.3.1安装Apache
    1.3.2安装MySQL
    1.3.3安装PHP
    1.3.4搭建快速开发平台
    1.4本章小结
    第2章PHP语法
    前面的章节讲解了PHP的运行平台的搭建和配置。本章将在这些知识的基础上讲解编程中的一些概念和基本语法。本章的内容包括PHP语法的格式、注释、变量、运算符、数据类型、类型强制转换等知识。通过对本章的学习,可以对该语言有一个大致的了解,编写一些简单程序。
    2.1PHP入门
    2.1.1第一个PHP网页
    2.1.2网页中嵌入PHP程序
    2.1.3语法格式
    2.1.4PHP中的注释
    2.2PHP的常量与变量
    2.2.1什么是变量和常量
    2.2.2定义变量
    2.2.3定义常量
    2.2.4变量的作用域
    2.2.5变量的输出
    2.2.6PHP的表单变量
    2.2.7PHP的环境变量
    2.2.8PHP的系统常量
    2.3PHP的运算符
    2.3.1算术运算符
    2.3.2条件运算符与逻辑运算符
    2.3.3字符串运算符
    2.3.4PHP的运算优先级
    2.4PHP的数据类型
    2.4.1常用数据类型
    2.4.2特殊的数据类型
    2.4.3数据类型的查看和验证
    2.5PHP数据类型的转换
    2.5.1转换成整型
    2.5.2转换成字符串型
    2.5.3转换成浮点型
    2.5.4转换成布尔型
    2.5.5强制类型转换
    2.6实例
    2.6.1静态变量使用实例
    2.6.2数学运算符与优先级实例
    2.7小结
    第3章PHP的常用语句
    本章将重点讲解PHP的语句。一些运算符和表达式,后面用分号隔开,能够完成一定的逻辑功能,就构成一个语句。复杂的程序都是由简单的语句构成的。流程控制语句是本章的重点,程序中复杂的功能都是通过流程控制语句来完成的。通过本章的学习,读者需要掌握流程控制语句、常用的表达式、文件包含等PHP编程技巧。
    3.1流程控制语句
    3.1.1if条件语句
    3.1.2switch条件语句
    3.1.3for循环语句
    3.1.4while循环语句
    3.1.5dowhile循环语句
    3.1.6转移控制语句:continue
    3.1.7转移控制语句:break
    3.1.8转移控制语句:return
    3.2流程控制语句实例
    3.2.1实例:输出表格
    3.2.2实例:输出九九乘法口诀表
    3.2.3实例:解一元二次方程
    3.3文件包含
    3.3.1使用require和require_once语句包含文件
    3.3.2使用include和include_once语句包含文件
    3.4小结
    第4章函数
    PHP程序中会调用各种函数,函数实现了程序中的各种功能,也实现了代码的结构化。函数分为系统函数和自定义函数两种。系统函数是PHP自带的函数,系统函数无法实现的功能需要自己编写自定义函数。本章重点介绍函数的调用和自定义函数的编写。
    4.1函数的定义与调用
    4.1.1函数的调用
    4.1.2自定义函数
    4.1.3自定义函数实例
    4.2数学函数
    4.2.1rand与srand产生随机数
    4.2.2随机数生成实例:生成数字代码
    4.2.3数学函数
    4.3时间函数
    4.3.1获得日期时间信息函数getdate
    4.3.2获得当前时间函数gettimeofday
    4.3.3日期验证函数checkdate
    4.3.4格式化本地日期时间函数date
    4.3.5获得本地化时间戳函数mktime
    4.4小结
    第5章数组
    数组就是一组具有相同数据类型的变量的集合。在程序中调用这些变量时,使用相同的变量名和键。数组中的每一个变量称作数组的一个元素。使用数组,可以用循环语句来方便地处理程序中大量的数据。本章将讲解数组相关的函数和编程。
    5.1数组的操作
    5.1.1数组的理解
    5.1.2数组的建立
    5.1.3数组的访问
    5.1.4数组的遍历
    5.1.5数组的索引与键值操作技巧
    5.2数组的常用函数
    5.2.1使用sort和rsort对数组排序
    5.2.2使用asort和arsort对数组排序
    5.2.3使用array_multisort对数组进行排序
    5.2.4数组与堆栈
    5.2.5使用array_shift和array_unshift函数访问数组
    5.2.6数组查找函数array_search
    5.2.7其他数组函数
    5.3数组应用实例
    5.3.1实例:数组的排序与访问
    5.3.2实例:数组的访问
    5.4小结
    第6章字符串
    在实际编程时,常常需要进行字符串处理。PHP提供了非常丰富的字符串处理函数,而正则表达式的使用,可以更加灵活地对字符串进行模糊处理。使用正则表达式对于处理复杂的字符串非常便利。本章讲解字符串的常用操作和正则表达式的使用。
    6.1字符串的理解
    6.2字符串的显示与格式化
    6.2.1echo和print输出字符串
    6.2.2sprintf字符串格式化输出
    6.3字符串的常用操作
    6.3.1字符串重复函数str_repeat
    6.3.2字符串替换函数str_replace
    6.3.3字符串分解操作函数str_split
    6.3.4字符串分解成单词函数str_word_count
    6.3.5字符串查找操作函数strstr
    6.3.6字符串的长度函数strlen
    6.3.7获得字符串函数substr
    6.4小结
    第二篇PHP与MySQL数据库编程
    第7章MySQL数据库
    Linux+Apache+MySQL+PHP方案是一个非常理想的网站解决方案。MySQL数据库是一个功能强大的数据库管理系统,在PHP网站中有着非常优秀的表现。在网站中,PHP程序是将网站的内容存储在MySQL数据库中。用户在访问网页时,查询数据库内容再生成HTML网页发送到浏览器。本章讲述MySQL的管理、SQL语句等数据库操作基础知识。
    7.1数据库的启动与关闭
    7.1.1服务管理方式启动与关闭MySql服务
    7.1.2命令行方式管理MySql服务
    7.2phpMyAdmin管理MySQL数据库
    7.2.1登录和使用phpMyAdmin
    7.2.2添加和删除数据库
    7.3在数据库中创建表
    7.3.1数据表的理解
    7.3.2MySQL的数据类型
    7.3.3建立数据库模型
    7.3.4在phpMyAdmin中创建表
    7.4用phpMyAdmin管理表中的数据
    7.4.1phpMyAdmin添加数据
    7.4.2phpMyAdmin查看数据
    7.5权限管理
    7.5.1添加和删除用户
    7.5.2设置数据库用户的权限
    7.6MySQL命令行管理MySQL数据库
    7.6.1登录MySQL命令行
    7.6.2新建与删除数据库
    7.6.3新建或删除数据库表
    7.7用SQL语句访问MySQL数据库
    7.7.1插入数据
    7.7.2数据查询
    7.7.3数据更新
    7.7.4数据删除
    7.7.5查询数据的分组与处理
    7.8MySQL的内置函数
    7.9小结
    第8章PHP和MySQL的应用
    在网站项目中,网站的数据是存放在数据库中的。PHP+MySQL是一个非常好的网站解决方案,具有非常好的性能和安全性。在PHP网站中,程序常常进行数据库访问,数据库访问是通过SQL语句完成的。本章讲解PHP对MySQL数据库进行连接、表单使用、数据查询等方面的内容。本章中使用的数据库,是上一章建立的“db_stu”数据库。在进行本章学习之前,需要按照上一章的内容建立数据库。
    8.1MySQL的连接和选择数据库
    8.1.1连接到MySQL服务器
    8.1.2选择数据库
    8.1.3网站配置文件
    8.2数据库的查询操作
    8.2.1执行SQL语句
    8.2.2获取查询结果的记录数
    8.2.3获取查询结果的某一条记录
    8.2.4逐行获取记录集中的每一行数据
    8.3数据库访问实例
    8.3.1院系的添加
    8.3.2院系管理列表
    8.3.3院系的删除
    8.3.4院系编辑网页
    8.3.5添加班级
    8.3.6数据分页显示
    8.3.7数据列表的排序
    8.4小结
    第三篇商用Blog系统开发详解
    第9章项目简介及功能演示
    本章将从一个实际的项目谈起,这个项目是一个基于Div+CSS+Ajax+PHP+MySQL+Smarty的博客系统,为了方便说明,此处把它命名为FYblog。在以后的章节中,将以它为实例逐步详细、深入地讲解PHP项目开发,讲解流行的Ajax技术等。
    本章介绍FYblog的主要功能和特点,它是学习后面章节的基础。FYblog是一个个性鲜明、技术含量较高的系统,然而系统本身并不是学习的主要目的,其中的思路、程序逻辑、实现方法、原理才是最重要的。“千里之行,始于足下”。因此,一个好的学习态度是成功的开始。
    9.1项目简介
    9.1.1项目优点
    9.1.2项目不足
    9.2前台体验
    9.2.1前台首页
    9.2.2文章显示与评论
    9.2.3标签、搜索、日历等模块
    9.2.4导航链接
    9.3后台功能
    9.3.1登录界面
    9.3.2“文章管理”模块
    9.3.3“模板管理”模块
    9.3.4“分类管理”模块
    9.3.5“评论管理”模块
    9.3.6“附件管理”模块
    9.3.7“链接管理”模块
    9.3.8“用户管理”模块
    9.3.9“系统维护”模块
    9.3.10“数据管理”模块
    9.3.11“日志管理”模块
    9.4程序安装与配置
    9.4.1phpMyAdmin导入SQL文件
    9.4.2通过install.php安装
    9.5本章小结
    第10章系统分析与总体设计
    在前面章节中对平台搭建进行了详细的介绍,平台搭建与环境配置是项目开发的基础,合理的配置可以提高工作效率,有助于程序的调试与编译。环境配置好之后,就可以进行项目实践了。从本章起,将逐步介绍项目开发的流程。为了讲解方便,本章及以后章节中统一基于Windows2003下的Apache2.2.4+MySQL5.0.37+PHP5.21+phpMyAdmin2.10环境进行介绍。
    10.1需求分析
    10.1.1什么是需求分析
    10.1.2FYblog需求分析
    10.2了解Web2.0
    10.2.1什么是Web2.0
    10.2.2Web2.0的特点
    10.2.3Web2.0的条件
    10.3基于Ajax的设计思路
    10.3.1什么是Ajax技术
    10.3.2Ajax技术的好处
    10.4基于Div+CSS的网站构架
    10.4.1什么是Web标准
    10.4.2Web标准有关代码的规范
    10.4.3基于Div+CSS布局的好处
    10.5面向对象的程序设计思想
    10.5.1为什么要学习面向对象
    10.5.2类、对象和方法
    10.5.3FYblog中的面向对象
    10.5.4数据库操作类
    10.6本章小结
    第11章数据库设计
    从本章起将开始从实践的角度来谈PHP开发。在进行项目开发时,数据库的设计往往是第一步,因为程序离不开数据库,如果数据库没有设计好,后面的程序调试、运行都无从谈起。而且数据库的设计和需求分析是一脉相承的,需求分析做得越仔细,数据库的设计也就越精确和快速,后面甚至不需要做过多的调整。如果前面的需求分析不够完善,或者不够细致,那么做数据库设计时一般会感觉无从下手,有可能反复多次修改依然不太满意。需求分析是思路上的一种总体规划,而数据库从某种意义上可以说是程序逻辑上的一种规划。
    11.1为什么要进行数据库设计
    11.2数据库设计思想
    11.2.1数据库设计理念
    11.2.2数据库的逻辑设计
    11.3MySQL数据库的字段类型
    11.4数据库的物理设计
    11.4.1fy_articles表(文章)
    11.4.2fy_attachments表(附件)
    11.4.3fy_categories表(文章分类)
    11.4.4fy_comments表(文章评论)
    11.4.5fy_links表(友情链接)
    11.4.6fy_search表(前台搜索记录)
    11.4.7fy_sessions表(后台登录session)
    11.4.8fy_settings表(系统设置)
    11.4.9fy_statistics表(站内统计)
    11.4.10fy_tags表(文章标签)
    11.4.11fy_users表(后台账号)
    11.5数据库存储优化
    11.5.1数据库设计过程中的优化
    11.5.2查询过程中的优化
    11.5.3其他有关的优化
    11.6MySQL数据库的查询技巧
    11.6.1联合查询
    11.6.2IN(…)查询语法
    11.7MySQL的存储过程、触发器和视图
    11.7.1存储过程
    11.7.2触发器
    11.7.3视图
    11.8本章小结
    第12章项目核心功能的实现
    前一章中详细讲解了数据库设计技巧,数据库设计是项目开发过程中一个重要组成部分。数据库设计完成之后,就可以开始编码任务了。编码的目的当然是为了实现程序的功能,满足客户的需求。本章将以FYblog项目为实例,一步步讲解项目中各功能模块是如何实现的。
    12.1公共函数与类
    12.1.1组织目录结构
    12.1.2函数库
    12.1.3缓存技术
    12.2前台文章功能
    12.2.1如何显示文章列表
    12.2.2博客系统日历
    12.2.3模糊搜索的原理
    12.3用户评论功能
    12.3.1文章评论的查询与显示
    12.3.2插入评论表情
    12.3.3评论的提交与过滤
    12.3.4验证码技术
    12.4站内数据统计功能
    12.5本章小结
    第13章附件上传与图片处理
    在FYblog系统中,附件上传是在后台进行的,本来这些知识应该在后面的章节中进行讲解。但是,前台也涉及比较多的附件处理,因此,本章将详细讲解附件上传与图片处理。本章中涉及的技术是很重要的。
    13.1附件上传
    13.1.1多文件上传
    13.1.2上传的实现
    13.2附件调用
    13.2.1数据系列化与反系列化
    13.2.2附件调用
    13.3图像生成缩略图
    13.3.1计算缩略图尺寸
    13.3.2生成图像
    13.4图像生成水印
    13.4.1生成水印
    13.4.2创建图像文件
    13.5博客相册功能
    13.5.1图片列表的实现
    13.5.2图片的浏览
    13.6本章小结
    第14章登录验证与权限系统
    登录验证是指网站后台的访问权限验证,而权限系统是指用户组权限划分,二者是不同的两个概念。登录证的作用就不必多说了,网站后台绝对不允许任何人访问到。而权限系统的目的是将用户按照权限高低划分不同的等级,不同的等级具有不同的操作权限。权限系统不仅仅限于后台,譬如一个论坛,前台就得有权限划分,一般有版主、超级版主、管理员、超级管理员、游客、正式注册会员等不同等级。
    14.1基于cookies和数据库的登录验证
    14.1.1判断登录状态
    14.1.2登录验证
    14.2基于session的登录验证
    14.3权限系统设计
    14.4本章小结
    第15章后台管理模块
    前面几章介绍了FYblog的一些基本功能,如文章显示、附件处理、登录验证等,这些基本上都是前台功能。实际上FYblog系统后台有着比较强大的功能,涉及文章管理、附件处理、评论管理、模板编辑、数据备份、日志管理等各个方面。而这些功能有很强的实用性,在实际的项目中是随处可见的,因此本章将以FYblog系统为实例,逐一介绍PHP项目中各种后台功能的实现技巧。
    15.1文章管理模块
    15.1.1模板article.dll
    15.1.2文章列表及文章搜索
    15.1.3添加文章
    15.1.4FCKeditor编辑器的配置
    15.1.5批量移动、删除文章
    15.2模板管理模块
    15.2.1程序模块template.php
    15.2.2模板template.dll
    15.3评论管理模块
    15.3.1设置评论可见状态
    15.3.2批量处理评论
    15.4友情链接管理模块
    15.4.1添加友情链接
    15.4.2更新友情链接
    15.4.3显示友情链接列表
    15.5数据管理模块
    15.5.1修复数据库
    15.5.2备份数据库
    15.5.3sqldumptable函数详解
    15.5.4导入RSS数据
    15.6日志管理模块
    15.6.1后台操作记录
    15.6.2后台登录记录
    15.6.3数据库出错记录
    15.6.4日志的删除
    15.6.5日志的读取
    15.6.6前台搜索记录
    15.7本章小结
    第16章安全部署及优化
    谈到Web程序开发,就不能不谈到Web安全。Web安全可以简单地理解为网站安全,它是网络安全领域里面的一个重要组成部分。Web程序存在的安全问题,直接危及管理后台、数据库、服务器的安全,甚至威胁到整个内部网络的安全。一旦黑客发现了Web漏洞的利用方法,就可以突破程序的安全防线,非法进入后台,查看数据库里的机密数据(如会员资料等)。而且不仅仅如此,黑客还可以上传脚本后门(通常称作webshell),利用webshell可以完全控制网站,可以下载网站源代码,还可以结合一些系统漏洞和系统的安全设置问题来提升权限。
    16.1环境设置与程序安全
    16.1.1设置PHP安全模式
    16.1.2设置脚本访问目录
    16.1.3设置禁用函数
    16.1.4设置register_globals
    16.1.5设置magic_quotes_gpc
    16.1.6设置报错信息
    16.1.7allow_url_fopen函数
    16.2防范注入漏洞
    16.2.1注入漏洞实例
    16.2.2注入攻击的原理
    16.2.3注入漏洞的防范
    16.3防范文件包含漏洞
    16.3.1远程文件包含漏洞的原理
    16.3.2远程文件包含漏洞的防范
    16.4防范CC攻击
    16.4.1数据库设计
    16.4.2程序设计
    16.5变量初始化
    16.6防范跨站攻击、灌水、广告
    16.6.1防范技巧
    16.6.2跨站攻击的危害
    16.7本章小结
    第四篇使用Ajax改善用户体验
    第17章Ajax概念与原理
    Ajax理念的出现,揭开了无刷新更新页面时代的序幕,并有代替传统Web开发中采用表单提交方式来更新Web页面的趋势。Ajax是具有变革性的,它使开发者得以摆脱原有单调的开发模式,从而开发出更易用、交互性更强的Web应用程序。目前,Ajax的一些成功应用有:Google主页、GoogleSuggest、GoogleMaps、Gmail等,无论在视觉效果还是易用性上都给人带来强烈的冲击力。因此,Ajax的出现具有里程碑式的意义,并在短时间内成为Web开发领域炙手可热的技术。而JavaScript是Ajax的核心技术之一,在Ajax技术中起着不可替代的作用。本章将利用有限的篇幅,力求向读者展示Ajax的风采,以及JavaScript在Ajax中所扮演的重要角色。
    17.1什么是Ajax
    17.1.1Ajax的定义
    17.1.2Ajax的诞生与发展
    17.2为什么需要Ajax
    17.2.1传统的Web框架
    17.2.2Ajax技术框架
    17.2.3Ajax的优势
    17.3Ajax核心技术
    17.3.1JavaScript
    17.3.2XMLHttpRequest
    17.3.3DOM408
    17.3.4XML408
    17.4Ajax应用实例
    17.4.1Google主页
    17.4.2GoogleMaps
    17.5Ajax应用场景
    17.5.1数据验证
    17.5.2按需读取数据
    17.5.3自动实时更新页面
    17.6使用Ajax
    17.6.1创建XMLHttpRequest对象
    17.6.2向服务器发送请求
    17.6.3处理服务器响应
    17.6.4完整的Ajax框架
    17.6.5开山之作:“Hello,Ajax”程序
    17.6.6注册信息实时验证实例
    17.6.7级联目录实例
    17.6.8自动实时更新页面
    17.6.9小结
    17.7Ajax的不足之处
    17.8本章小结
    第18章Ajax无刷新静态分页
    在上一章中对Ajax与服务器通信、发送请求和处理响应等做了详细介绍。理解Ajax技术的关键是理解XMLHttpRequest对象,熟悉文档对象模型DOM。
    实际上,Ajax的用途非常广泛,在程序开发过程中,翻页技术的使用是非常普遍的,本章通过讲解Ajax静态翻页技术,帮助读者通过实际的案例理解Ajax的应用技巧。本章实例都在第12章建立的FYblog项目的基础上创建。
    18.1分页技术概况
    18.1.1传统的分页技术
    18.1.2Ajax静态分页技术
    18.2分页技术的原理
    18.2.1查询的技巧
    18.2.2翻页函数
    18.3Ajax与PHP之间的参数传递
    18.3.1准备工作
    18.3.2参数传递
    18.4无比流畅的静态翻页
    18.5滑动翻页技术
    18.5.1onMouseOver事件
    18.5.2滑动翻页
    18.6本章小结
    第19章Ajax与表单处理
    前面两章中对Ajax的一些应用做了讲解,其中主要讲解了Ajax的GET方式的请求。从本章起将介绍POST方式的请求。表单在Web程序中极为常见,而且起着非常重要的作用。表单处理有很多细节问题,比如表单验证、密码强度实时检测等。Ajax技术的出现使得这些细节问题处理起来更方便,更加人性化。因此,本章将以表单为出发点,介绍Ajax技术在表单处理方面的一些技巧,以及POST方式发送请求的技巧。本章大部分地方以FYblog中的有关代码为例子。
    19.1Ajax无刷新提交表单
    19.1.1传统的表单提交方式
    19.1.2Ajax提交表单
    19.2Ajax与表单验证
    19.2.1基于客户端的表单验证
    19.2.2基于服务器端的表单验证
    19.2.3两种表单验证方式的比较
    19.3表单实时检测技术
    19.3.1密码强度检测
    19.3.2表单实时检测
    19.4本章小结
    第20章Ajax定时更新技术
    本章将要介绍的是Ajax又一个很实用的功能,即Ajax定时更新技术。所谓定时更新技术,简单地说,是指采用Ajax技术定时地发出请求,或者定时地更新页面某一节点的数据。此处谈到的定时是指每间隔一定的时间更新一次或者指定更新的次数。严格地说,这种技术的实现基础是JavaScript的定时器,然而Ajax技术使得这种技术更有价值,所以这种技术在很多情况下会用到。
    Ajax定时更新技术的作用很大,可以用在动态显示时间、随机显示新闻、抽奖程序、发帖自动保存草稿、聊天室定期刷新页面等场合。当然,不仅仅限于这些,掌握了Ajax定时更新技术,还可以实现更多的效果,做更多的事情。因此,本章将系统地介绍Ajax定时更新技术。
    20.1Ajax定时更新技术的原理
    20.1.1定时更新的实现
    20.1.2setInterval与setTimeout用法
    20.2Ajax抽奖程序
    20.2.1需求分析
    20.2.2程序设计
    20.3Ajax自动保存草稿功能
    20.3.1Ajax与Cookies
    20.3.2使用Cookies保存数据
    20.4本章小结
    第21章Ajax打造人性化的搜索
    用过Google搜索的人应该都会发现,它具有自动完成功能。当用户输入一个关键字之后,输入框会列出与这个关键字有关的关键词,并且显示每个关键词有多少条搜索记录。这种自动完成功能是一个新技术,它使得搜索显得非常人性化和智能化,可以为用户提供方便,在一定程度上改善了用户体验。然而,搜索不仅仅Google有,现在各种网站上基本都有站内搜索入口,比如各种论坛、博客系统、文章系统等。
    21.1Ajax无刷新搜索
    21.1.1数据库设计
    21.1.2插入数据
    21.1.3表单处理
    21.1.4无刷新搜索
    21.1.5Ajax搜索的分页
    21.2Ajax自动完成功能
    21.2.1Autocomplete框架1.4.3介绍
    21.2.2建立关键词数据库
    21.2.3调用JavaScript框架
    21.2.4用Ajax实现自动完成功能
    21.3本章小结
    第22章Ajax与拖动层
    随着Ajax技术的不断成熟,用户体验方面的创意也是越来越丰富。网络上有许多开源的JavaScrpt框架,这些框架与Ajax结合可以实现非常复杂的效果,比如弹出层、Ajax拖拽提交、淡入淡出的菜单,以及一些更复杂的UI创意。当然,这些效果也并不是都用到了Ajax技术,有些是完全的JavaScrpt特效。常见的JavaScrpt框架有很多,比如基于Prototype的script.aculo.us、YahooUI,以及JQuery的各种插件等。这些JavaScrpt框架可以在很大的程度上改善用户体验,使得Web程序更具有创意和表现力,更有特色和吸引力,再加上Ajax的配合,Web程序已经与传统的表现方式有着本质的区别。
    22.1JavaScrpt实现层的弹出与拖动
    22.1.1设置弹出层的属性
    22.1.2设置弹出层的样式
    22.1.3层的弹出
    22.1.4层的拖动
    22.2Ajax与弹出层
    22.2.1首页模板index.html
    22.2.2定义弹出窗口属性(show.js)
    22.2.3响应Ajax请求(add.php)
    22.2.4后台处理(do.php)
    22.2.5Ajax与弹出层交互
    22.3定时弹出窗口
    22.3.1个性化的弹出窗口
    22.3.2定时弹出窗口
    22.4本章小结
    第23章Ajax改善用户体验综合篇
    前面几章中介绍了Ajax技术的一些常见用法,但是Ajax技术的用法很多,而且很多时候体现在一些细节上。对于Ajax技术的应用很难都一一介绍到,但是如果举一反三,能够灵活贯通,应用Ajax技术时就可以随心所欲了。凡是适合使用Ajax的地方,就可以考虑使用它。网络上对于Ajax的讨论和研究实在太多了,这在一定程度上增加了Ajax的神秘性和复杂性,实际上,Ajax并不神秘。本章将结合具体的实例,再介绍Ajax技术的几种用法,作为对前面章节的一些补充和总结。在本章的例子中,实现的功能并不是最重要的,其思路及实现过程才是值得注意的。
    23.1可以动态编辑的文本
    23.1.1动态编辑文本的实现
    23.1.2静态模板demo1.html
    23.1.3处理Ajax请求
    23.2Ajax动态联动下拉框
    23.2.1前台程序demo2.html
    23.2.2后台处理server.php
    23.2.3数据库设计
    23.2.4Ajax动态联动下拉框效果
    23.3Ajax升序、降序排列数据
    23.3.1数据库设计
    23.3.2前台程序设计
    23.3.3后台程序设计
    23.3.4Ajax升序、降序的效果
    23.4本章小结
    第24章Ajax动态更新页面数据
    在FYblog系统中,前台部分用到了相当多的Ajax技术,使得前台有且仅有一个静态页面来完成用户交互及数据传输。Ajax的重要用途之一是动态更新页面数据,即在不刷新、不跳转的情况下,更新页面局部的内容。本章将结合FYblog系统,以实例的形式介绍Ajax动态更新页面数据的一些技巧。值得注意的是,理解Ajax如何与PHP进行交互也是很关键的。
    24.1AJAXRequest
    24.2Ajax与服务器通信,发送请求和处理响应
    24.2.1调用Ajax框架
    24.2.2Ajax发送请求
    24.2.3处理Ajax请求
    24.3Ajax无刷新更新数据
    24.3.1触发Ajax请求
    24.3.2动态更新数据
    24.4本章小结
查看详情
您可能感兴趣 / 更多
程序天下:PHP +Ajax Web 2.0编程技术与项目开发大全
程序员成长手记 涂阿燃
作者
程序天下:PHP +Ajax Web 2.0编程技术与项目开发大全
程序员考前突破:考点精讲、真题精解、难点精练
詹宏锋 李锋 许纪贤 编著
程序天下:PHP +Ajax Web 2.0编程技术与项目开发大全
程序员的制胜技
[土耳其]塞达特·卡帕诺格鲁(Sedat Kapanoglu)
程序天下:PHP +Ajax Web 2.0编程技术与项目开发大全
程序设计基础(C语言)(第3版)
刘明军 袁宁 张玲 蒋彦 赵亚欧 编著;潘玉奇 主编;蔺永政
程序天下:PHP +Ajax Web 2.0编程技术与项目开发大全
程序管制(高等学校民航特色专业教材)
刘昕
程序天下:PHP +Ajax Web 2.0编程技术与项目开发大全
程序设计实践与习题指导 C语言 基于计算思维能力培养
崔贯勋 编;李娅
程序天下:PHP +Ajax Web 2.0编程技术与项目开发大全
程序设计方法与技术——C语言(第2版)
主编顾春华副主编陈章进叶
程序天下:PHP +Ajax Web 2.0编程技术与项目开发大全
程序设计基础(C语言) 李超锋,杨健,项巧莲 著
李超锋;杨健;项巧莲
程序天下:PHP +Ajax Web 2.0编程技术与项目开发大全
程序设计基础(C语言)
王超;郭静
程序天下:PHP +Ajax Web 2.0编程技术与项目开发大全
程序逻辑及C语言编程
卢卫中,杨丽芳
程序天下:PHP +Ajax Web 2.0编程技术与项目开发大全
程序员进阶之路 缓存、网络、内存与案例 邓中华 著
邓中华
程序天下:PHP +Ajax Web 2.0编程技术与项目开发大全
程序设计方法(Python)(微课版)
周勇
系列丛书 / 更多
程序天下:PHP +Ajax Web 2.0编程技术与项目开发大全
程序员成长手记 涂阿燃
作者
程序天下:PHP +Ajax Web 2.0编程技术与项目开发大全
程序员考前突破:考点精讲、真题精解、难点精练
詹宏锋 李锋 许纪贤 编著
程序天下:PHP +Ajax Web 2.0编程技术与项目开发大全
程序员的制胜技
[土耳其]塞达特·卡帕诺格鲁(Sedat Kapanoglu)
程序天下:PHP +Ajax Web 2.0编程技术与项目开发大全
程序设计基础(C语言)(第3版)
刘明军 袁宁 张玲 蒋彦 赵亚欧 编著;潘玉奇 主编;蔺永政
程序天下:PHP +Ajax Web 2.0编程技术与项目开发大全
程序管制(高等学校民航特色专业教材)
刘昕
程序天下:PHP +Ajax Web 2.0编程技术与项目开发大全
程序设计实践与习题指导 C语言 基于计算思维能力培养
崔贯勋 编;李娅
程序天下:PHP +Ajax Web 2.0编程技术与项目开发大全
程序设计方法与技术——C语言(第2版)
主编顾春华副主编陈章进叶
程序天下:PHP +Ajax Web 2.0编程技术与项目开发大全
程序设计基础(C语言) 李超锋,杨健,项巧莲 著
李超锋;杨健;项巧莲
程序天下:PHP +Ajax Web 2.0编程技术与项目开发大全
程序设计基础(C语言)
王超;郭静
程序天下:PHP +Ajax Web 2.0编程技术与项目开发大全
程序逻辑及C语言编程
卢卫中,杨丽芳
程序天下:PHP +Ajax Web 2.0编程技术与项目开发大全
程序员进阶之路 缓存、网络、内存与案例 邓中华 著
邓中华
程序天下:PHP +Ajax Web 2.0编程技术与项目开发大全
程序设计方法(Python)(微课版)
周勇
相关图书 / 更多
程序天下:PHP +Ajax Web 2.0编程技术与项目开发大全
程序员成长手记 涂阿燃
作者
程序天下:PHP +Ajax Web 2.0编程技术与项目开发大全
程序员考前突破:考点精讲、真题精解、难点精练
詹宏锋 李锋 许纪贤 编著
程序天下:PHP +Ajax Web 2.0编程技术与项目开发大全
程序员的制胜技
[土耳其]塞达特·卡帕诺格鲁(Sedat Kapanoglu)
程序天下:PHP +Ajax Web 2.0编程技术与项目开发大全
程序设计基础(C语言)(第3版)
刘明军 袁宁 张玲 蒋彦 赵亚欧 编著;潘玉奇 主编;蔺永政
程序天下:PHP +Ajax Web 2.0编程技术与项目开发大全
程序管制(高等学校民航特色专业教材)
刘昕
程序天下:PHP +Ajax Web 2.0编程技术与项目开发大全
程序设计实践与习题指导 C语言 基于计算思维能力培养
崔贯勋 编;李娅
程序天下:PHP +Ajax Web 2.0编程技术与项目开发大全
程序设计方法与技术——C语言(第2版)
主编顾春华副主编陈章进叶
程序天下:PHP +Ajax Web 2.0编程技术与项目开发大全
程序设计基础(C语言) 李超锋,杨健,项巧莲 著
李超锋;杨健;项巧莲
程序天下:PHP +Ajax Web 2.0编程技术与项目开发大全
程序设计基础(C语言)
王超;郭静
程序天下:PHP +Ajax Web 2.0编程技术与项目开发大全
程序逻辑及C语言编程
卢卫中,杨丽芳
程序天下:PHP +Ajax Web 2.0编程技术与项目开发大全
程序员进阶之路 缓存、网络、内存与案例 邓中华 著
邓中华
程序天下:PHP +Ajax Web 2.0编程技术与项目开发大全
程序设计方法(Python)(微课版)
周勇