PHP+Ajax Web 2.0編程技術(shù)與項(xiàng)目開發(fā)大全

出版時(shí)間:2008-6  出版社:電子工業(yè)出版社  作者:葉新偉 編  頁數(shù):574  
Tag標(biāo)簽:無  

內(nèi)容概要

  系統(tǒng)、具體地介紹了PHP編程基礎(chǔ)、項(xiàng)目開發(fā)技巧,以及PHP與Ajax的交互設(shè)計(jì)?!冻绦蛱煜?PHP +Ajax Web 2.0編程技術(shù)與項(xiàng)目開發(fā)大全》共分24章,以實(shí)際的項(xiàng)目作為例子貫穿始終,內(nèi)容涵蓋了PHP項(xiàng)目開發(fā)的各個(gè)方面,從基礎(chǔ)語法、數(shù)據(jù)庫基礎(chǔ)、需求分析、數(shù)據(jù)庫設(shè)計(jì)到附件處理、評(píng)論處理、站內(nèi)搜索、登錄驗(yàn)證、后臺(tái)管理、安全部署等各方面的實(shí)用技巧。此外,《程序天下?PHP +Ajax Web 2.0編程技術(shù)與項(xiàng)目開發(fā)大全》重點(diǎn)介紹了Ajax技術(shù)的應(yīng)用。《程序天下?PHP +Ajax Web 2.0編程技術(shù)與項(xiàng)目開發(fā)大全》最大的特色在于每一章中涉及的例子都經(jīng)過精挑細(xì)選,具有很強(qiáng)的針對(duì)性,力求讓讀者輕松掌握PHP項(xiàng)目開發(fā)的技巧和Ajax改善用戶體驗(yàn)的各種技術(shù),學(xué)習(xí)盡可能多的知識(shí)。

作者簡介

  葉新偉,致力于Web開發(fā)、網(wǎng)絡(luò)安全、UNIX系統(tǒng)方面的研究,精通UNIX平臺(tái)下的基于PHP+MySQL+Apache模式的設(shè)計(jì)與開發(fā)。先后供職于多家互聯(lián)網(wǎng)企業(yè),具有5年的項(xiàng)目經(jīng)驗(yàn),曾負(fù)責(zé)多個(gè)大型Web系統(tǒng)的開發(fā),包括流量千萬級(jí)的博客空間等Web 2.0產(chǎn)品。

書籍目錄

第一篇 PHP開發(fā)入門第1章 開發(fā)環(huán)境配置在開始學(xué)習(xí)PHP之前,需要搭建開發(fā)環(huán)境。本章將結(jié)合實(shí)際項(xiàng)目經(jīng)驗(yàn)來談在Windows環(huán)境下配置Apache+PHP+ MySQL+ phpMyAdmin,在Windows環(huán)境下配置IIS+PHP+MySQL+ phpMyAdmin,以及在Linux環(huán)境下配置Apache+PHP+ MySQL+ phpMyAdmin等。1.1 在Windows環(huán)境下配置IIS+PHP+MySQL+phpMyAdmin1.1.1 安裝IIS1.1.2 安裝PHP1.1.3 PHP設(shè)置1.1.4 安裝MySQL1.1.5 安裝Zend Optimizer1.1.6 安裝phpMyAdmin1.2 在Windows環(huán)境下配置Apache+PHP+MySQL+phpMyAdmin1.3 LAMP平臺(tái)的搭建1.3.1 安裝Apache1.3.2 安裝MySQL1.3.3 安裝PHP1.3.4 搭建快速開發(fā)平臺(tái)1.4 本章小結(jié)第2章 PHP語法前面的章節(jié)講解了PHP的運(yùn)行平臺(tái)的搭建和配置。本章將在這些知識(shí)的基礎(chǔ)上講解編程中的一些概念和基本語法。本章的內(nèi)容包括PHP語法的格式、注釋、變量、運(yùn)算符、數(shù)據(jù)類型、類型強(qiáng)制轉(zhuǎn)換等知識(shí)。通過對(duì)本章的學(xué)習(xí),可以對(duì)該語言有一個(gè)大致的了解,編寫一些簡單程序。2.1 PHP入門2.1.1 第一個(gè)PHP網(wǎng)頁2.1.2 網(wǎng)頁中嵌入PHP程序2.1.3 語法格式2.1.4 PHP中的注釋2.2 PHP的常量與變量2.2.1 什么是變量和常量2.2.2 定義變量2.2.3 定義常量2.2.4 變量的作用域2.2.5 變量的輸出2.2.6 PHP的表單變量2.2.7 PHP的環(huán)境變量2.2.8 PHP的系統(tǒng)常量2.3 PHP的運(yùn)算符2.3.1 算術(shù)運(yùn)算符2.3.2 條件運(yùn)算符與邏輯運(yùn)算符2.3.3 字符串運(yùn)算符2.3.4 PHP的運(yùn)算優(yōu)先級(jí)2.4 PHP的數(shù)據(jù)類型2.4.1 常用數(shù)據(jù)類型2.4.2 特殊的數(shù)據(jù)類型2.4.3 數(shù)據(jù)類型的查看和驗(yàn)證2.5 PHP數(shù)據(jù)類型的轉(zhuǎn)換2.5.1 轉(zhuǎn)換成整型2.5.2 轉(zhuǎn)換成字符串型2.5.3 轉(zhuǎn)換成浮點(diǎn)型2.5.4 轉(zhuǎn)換成布爾型2.5.5 強(qiáng)制類型轉(zhuǎn)換2.6 實(shí)例2.6.1 靜態(tài)變量使用實(shí)例2.6.2 數(shù)學(xué)運(yùn)算符與優(yōu)先級(jí)實(shí)例2.7 小結(jié)第3章 PHP的常用語句本章將重點(diǎn)講解PHP的語句。一些運(yùn)算符和表達(dá)式,后面用分號(hào)隔開,能夠完成一定的邏輯功能,就構(gòu)成一個(gè)語句。復(fù)雜的程序都是由簡單的語句構(gòu)成的。流程控制語句是本章的重點(diǎn),程序中復(fù)雜的功能都是通過流程控制語句來完成的。通過本章的學(xué)習(xí),讀者需要掌握流程控制語句、常用的表達(dá)式、文件包含等PHP編程技巧。3.1 流程控制語句3.1.1 if條件語句3.1.2 switch條件語句3.1.3 for循環(huán)語句3.1.4 while循環(huán)語句3.1.5 do while循環(huán)語句3.1.6 轉(zhuǎn)移控制語句:continue3.1.7 轉(zhuǎn)移控制語句:break3.1.8 轉(zhuǎn)移控制語句:return3.2 流程控制語句實(shí)例3.2.1 實(shí)例:輸出表格3.2.2 實(shí)例:輸出九九乘法口訣表3.2.3 實(shí)例:解一元二次方程3.3 文件包含3.3.1 使用require和require_once語句包含文件3.3.2 使用include和include_once語句包含文件3.4 小結(jié)第4章 函數(shù)PHP程序中會(huì)調(diào)用各種函數(shù),函數(shù)實(shí)現(xiàn)了程序中的各種功能,也實(shí)現(xiàn)了代碼的結(jié)構(gòu)化。函數(shù)分為系統(tǒng)函數(shù)和自定義函數(shù)兩種。系統(tǒng)函數(shù)是PHP自帶的函數(shù),系統(tǒng)函數(shù)無法實(shí)現(xiàn)的功能需要自己編寫自定義函數(shù)。本章重點(diǎn)介紹函數(shù)的調(diào)用和自定義函數(shù)的編寫。4.1 函數(shù)的定義與調(diào)用4.1.1 函數(shù)的調(diào)用4.1.2 自定義函數(shù)4.1.3 自定義函數(shù)實(shí)例4.2 數(shù)學(xué)函數(shù)4.2.1 rand與srand產(chǎn)生隨機(jī)數(shù)4.2.2 隨機(jī)數(shù)生成實(shí)例:生成數(shù)字代碼4.2.3 數(shù)學(xué)函數(shù)4.3 時(shí)間函數(shù)4.3.1 獲得日期時(shí)間信息函數(shù)getdate4.3.2 獲得當(dāng)前時(shí)間函數(shù)gettimeofday4.3.3 日期驗(yàn)證函數(shù)checkdate4.3.4 格式化本地日期時(shí)間函數(shù)date4.3.5 獲得本地化時(shí)間戳函數(shù)mktime4.4 小結(jié)第5章 數(shù)組數(shù)組就是一組具有相同數(shù)據(jù)類型的變量的集合。在程序中調(diào)用這些變量時(shí),使用相同的變量名和鍵。數(shù)組中的每一個(gè)變量稱作數(shù)組的一個(gè)元素。使用數(shù)組,可以用循環(huán)語句來方便地處理程序中大量的數(shù)據(jù)。本章將講解數(shù)組相關(guān)的函數(shù)和編程。5.1 數(shù)組的操作5.1.1 數(shù)組的理解5.1.2 數(shù)組的建立5.1.3 數(shù)組的訪問5.1.4 數(shù)組的遍歷5.1.5 數(shù)組的索引與鍵值操作技巧5.2 數(shù)組的常用函數(shù)5.2.1 使用sort和rsort對(duì)數(shù)組排序5.2.2 使用asort和arsort對(duì)數(shù)組排序5.2.3 使用array_multisort對(duì)數(shù)組進(jìn)行排序5.2.4 數(shù)組與堆棧5.2.5 使用array_shift和array_unshift函數(shù)訪問數(shù)組5.2.6 數(shù)組查找函數(shù)array_search5.2.7 其他數(shù)組函數(shù)5.3 數(shù)組應(yīng)用實(shí)例5.3.1 實(shí)例:數(shù)組的排序與訪問5.3.2 實(shí)例:數(shù)組的訪問5.4 小結(jié)第6章 字符串在實(shí)際編程時(shí),常常需要進(jìn)行字符串處理。PHP提供了非常豐富的字符串處理函數(shù),而正則表達(dá)式的使用,可以更加靈活地對(duì)字符串進(jìn)行模糊處理。使用正則表達(dá)式對(duì)于處理復(fù)雜的字符串非常便利。本章講解字符串的常用操作和正則表達(dá)式的使用。6.1 字符串的理解6.2 字符串的顯示與格式化6.2.1 echo和print輸出字符串6.2.2 sprintf字符串格式化輸出6.3 字符串的常用操作6.3.1 字符串重復(fù)函數(shù)str_repeat6.3.2 字符串替換函數(shù)str_replace6.3.3 字符串分解操作函數(shù)str_split6.3.4 字符串分解成單詞函數(shù)str_word_count6.3.5 字符串查找操作函數(shù)strstr6.3.6 字符串的長度函數(shù)strlen6.3.7 獲得字符串函數(shù)substr6.4 小結(jié)第二篇 PHP與MySQL數(shù)據(jù)庫編程第7章 MySQL數(shù)據(jù)庫Linux+Apache+MySQL+PHP方案是一個(gè)非常理想的網(wǎng)站解決方案。MySQL數(shù)據(jù)庫是一個(gè)功能強(qiáng)大的數(shù)據(jù)庫管理系統(tǒng),在PHP網(wǎng)站中有著非常優(yōu)秀的表現(xiàn)。在網(wǎng)站中,PHP程序是將網(wǎng)站的內(nèi)容存儲(chǔ)在MySQL數(shù)據(jù)庫中。用戶在訪問網(wǎng)頁時(shí),查詢數(shù)據(jù)庫內(nèi)容再生成HTML網(wǎng)頁發(fā)送到瀏覽器。本章講述MySQL的管理、SQL語句等數(shù)據(jù)庫操作基礎(chǔ)知識(shí)。7.1 數(shù)據(jù)庫的啟動(dòng)與關(guān)閉7.1.1 服務(wù)管理方式啟動(dòng)與關(guān)閉MySql服務(wù)7.1.2 命令行方式管理MySql服務(wù)7.2 phpMyAdmin管理MySQL數(shù)據(jù)庫7.2.1 登錄和使用phpMyAdmin7.2.2 添加和刪除數(shù)據(jù)庫7.3 在數(shù)據(jù)庫中創(chuàng)建表7.3.1 數(shù)據(jù)表的理解7.3.2 MySQL的數(shù)據(jù)類型7.3.3 建立數(shù)據(jù)庫模型7.3.4 在phpMyAdmin中創(chuàng)建表7.4 用phpMyAdmin管理表中的數(shù)據(jù)7.4.1 phpMyAdmin添加數(shù)據(jù)7.4.2 phpMyAdmin查看數(shù)據(jù)7.5 權(quán)限管理7.5.1 添加和刪除用戶7.5.2 設(shè)置數(shù)據(jù)庫用戶的權(quán)限7.6 MySQL命令行管理MySQL數(shù)據(jù)庫7.6.1 登錄MySQL命令行7.6.2 新建與刪除數(shù)據(jù)庫7.6.3 新建或刪除數(shù)據(jù)庫表7.7 用SQL語句訪問MySQL數(shù)據(jù)庫7.7.1 插入數(shù)據(jù)7.7.2 數(shù)據(jù)查詢7.7.3 數(shù)據(jù)更新7.7.4 數(shù)據(jù)刪除7.7.5 查詢數(shù)據(jù)的分組與處理7.8 MySQL的內(nèi)置函數(shù)7.9 小結(jié)第8章 PHP和MySQL的應(yīng)用在網(wǎng)站項(xiàng)目中,網(wǎng)站的數(shù)據(jù)是存放在數(shù)據(jù)庫中的。PHP+MySQL是一個(gè)非常好的網(wǎng)站解決方案,具有非常好的性能和安全性。在PHP網(wǎng)站中,程序常常進(jìn)行數(shù)據(jù)庫訪問,數(shù)據(jù)庫訪問是通過SQL語句完成的。本章講解PHP對(duì)MySQL數(shù)據(jù)庫進(jìn)行連接、表單使用、數(shù)據(jù)查詢等方面的內(nèi)容。本章中使用的數(shù)據(jù)庫,是上一章建立的“db_stu”數(shù)據(jù)庫。在進(jìn)行本章學(xué)習(xí)之前,需要按照上一章的內(nèi)容建立數(shù)據(jù)庫。8.1 MySQL的連接和選擇數(shù)據(jù)庫8.1.1 連接到MySQL服務(wù)器8.1.2 選擇數(shù)據(jù)庫8.1.3 網(wǎng)站配置文件8.2 數(shù)據(jù)庫的查詢操作8.2.1 執(zhí)行SQL語句8.2.2 獲取查詢結(jié)果的記錄數(shù)8.2.3 獲取查詢結(jié)果的某一條記錄8.2.4 逐行獲取記錄集中的每一行數(shù)據(jù)8.3 數(shù)據(jù)庫訪問實(shí)例8.3.1 院系的添加8.3.2 院系管理列表8.3.3 院系的刪除8.3.4 院系編輯網(wǎng)頁8.3.5 添加班級(jí)8.3.6 數(shù)據(jù)分頁顯示8.3.7 數(shù)據(jù)列表的排序8.4 小結(jié)第三篇 商用Blog系統(tǒng)開發(fā)詳解第9章 項(xiàng)目簡介及功能演示本章將從一個(gè)實(shí)際的項(xiàng)目談起,這個(gè)項(xiàng)目是一個(gè)基于Div+CSS+Ajax+PHP+ MySQL+Smarty的博客系統(tǒng),為了方便說明,此處把它命名為FYblog。在以后的章節(jié)中,將以它為實(shí)例逐步詳細(xì)、深入地講解PHP項(xiàng)目開發(fā),講解流行的Ajax技術(shù)等。本章介紹FYblog的主要功能和特點(diǎn),它是學(xué)習(xí)后面章節(jié)的基礎(chǔ)。FYblog是一個(gè)個(gè)性鮮明、技術(shù)含量較高的系統(tǒng),然而系統(tǒng)本身并不是學(xué)習(xí)的主要目的,其中的思路、程序邏輯、實(shí)現(xiàn)方法、原理才是最重要的?!扒Ю镏校加谧阆隆?。因此,一個(gè)好的學(xué)習(xí)態(tài)度是成功的開始。9.1 項(xiàng)目簡介9.1.1 項(xiàng)目優(yōu)點(diǎn)9.1.2 項(xiàng)目不足9.2 前臺(tái)體驗(yàn)9.2.1 前臺(tái)首頁9.2.2 文章顯示與評(píng)論9.2.3 標(biāo)簽、搜索、日歷等模塊9.2.4 導(dǎo)航鏈接9.3 后臺(tái)功能9.3.1 登錄界面9.3.2 “文章管理”模塊9.3.3 “模板管理”模塊9.3.4 “分類管理”模塊9.3.5 “評(píng)論管理”模塊9.3.6 “附件管理”模塊9.3.7 “鏈接管理”模塊9.3.8 “用戶管理”模塊9.3.9 “系統(tǒng)維護(hù)”模塊9.3.10 “數(shù)據(jù)管理”模塊9.3.11 “日志管理”模塊9.4 程序安裝與配置9.4.1 phpMyAdmin導(dǎo)入SQL文件9.4.2 通過install.php安裝9.5 本章小結(jié)第10章 系統(tǒng)分析與總體設(shè)計(jì)在前面章節(jié)中對(duì)平臺(tái)搭建進(jìn)行了詳細(xì)的介紹,平臺(tái)搭建與環(huán)境配置是項(xiàng)目開發(fā)的基礎(chǔ),合理的配置可以提高工作效率,有助于程序的調(diào)試與編譯。環(huán)境配置好之后,就可以進(jìn)行項(xiàng)目實(shí)踐了。從本章起,將逐步介紹項(xiàng)目開發(fā)的流程。為了講解方便,本章及以后章節(jié)中統(tǒng)一基于Windows 2003下的Apache 2.2.4+MySQL 5.0.37+PHP 5.21+phpMyAdmin 2.10環(huán)境進(jìn)行介紹。10.1 需求分析10.1.1 什么是需求分析10.1.2 FYblog需求分析10.2 了解Web 2.010.2.1 什么是Web 2.010.2.2 Web 2.0的特點(diǎn)10.2.3 Web 2.0的條件10.3 基于Ajax的設(shè)計(jì)思路10.3.1 什么是Ajax技術(shù)10.3.2 Ajax技術(shù)的好處10.4 基于Div+CSS的網(wǎng)站構(gòu)架10.4.1 什么是Web標(biāo)準(zhǔn)10.4.2 Web標(biāo)準(zhǔn)有關(guān)代碼的規(guī)范10.4.3 基于Div+CSS布局的好處10.5 面向?qū)ο蟮某绦蛟O(shè)計(jì)思想10.5.1 為什么要學(xué)習(xí)面向?qū)ο?0.5.2 類、對(duì)象和方法10.5.3 FYblog中的面向?qū)ο?0.5.4 數(shù)據(jù)庫操作類10.6 本章小結(jié)第11章 數(shù)據(jù)庫設(shè)計(jì)從本章起將開始從實(shí)踐的角度來談PHP開發(fā)。在進(jìn)行項(xiàng)目開發(fā)時(shí),數(shù)據(jù)庫的設(shè)計(jì)往往是第一步,因?yàn)槌绦螂x不開數(shù)據(jù)庫,如果數(shù)據(jù)庫沒有設(shè)計(jì)好,后面的程序調(diào)試、運(yùn)行都無從談起。而且數(shù)據(jù)庫的設(shè)計(jì)和需求分析是一脈相承的,需求分析做得越仔細(xì),數(shù)據(jù)庫的設(shè)計(jì)也就越精確和快速,后面甚至不需要做過多的調(diào)整。如果前面的需求分析不夠完善,或者不夠細(xì)致,那么做數(shù)據(jù)庫設(shè)計(jì)時(shí)一般會(huì)感覺無從下手,有可能反復(fù)多次修改依然不太滿意。需求分析是思路上的一種總體規(guī)劃,而數(shù)據(jù)庫從某種意義上可以說是程序邏輯上的一種規(guī)劃。11.1 為什么要進(jìn)行數(shù)據(jù)庫設(shè)計(jì)11.2 數(shù)據(jù)庫設(shè)計(jì)思想11.2.1 數(shù)據(jù)庫設(shè)計(jì)理念11.2.2 數(shù)據(jù)庫的邏輯設(shè)計(jì)11.3 MySQL數(shù)據(jù)庫的字段類型11.4 數(shù)據(jù)庫的物理設(shè)計(jì)11.4.1 fy_articles表(文章)11.4.2 fy_attachments表(附件)11.4.3 fy_categories表(文章分類)11.4.4 fy_comments表(文章評(píng)論)11.4.5 fy_links表(友情鏈接)11.4.6 fy_search表(前臺(tái)搜索記錄)11.4.7 fy_sessions表(后臺(tái)登錄session)11.4.8 fy_settings表(系統(tǒng)設(shè)置)11.4.9 fy_statistics表(站內(nèi)統(tǒng)計(jì))11.4.10 fy_tags表(文章標(biāo)簽)11.4.11 fy_users表(后臺(tái)賬號(hào))11.5 數(shù)據(jù)庫存儲(chǔ)優(yōu)化11.5.1 數(shù)據(jù)庫設(shè)計(jì)過程中的優(yōu)化11.5.2 查詢過程中的優(yōu)化11.5.3 其他有關(guān)的優(yōu)化11.6 MySQL數(shù)據(jù)庫的查詢技巧11.6.1 聯(lián)合查詢11.6.2 IN(…)查詢語法11.7 MySQL的存儲(chǔ)過程、觸發(fā)器和視圖11.7.1 存儲(chǔ)過程11.7.2 觸發(fā)器11.7.3 視圖11.8 本章小結(jié)第12章 項(xiàng)目核心功能的實(shí)現(xiàn)前一章中詳細(xì)講解了數(shù)據(jù)庫設(shè)計(jì)技巧,數(shù)據(jù)庫設(shè)計(jì)是項(xiàng)目開發(fā)過程中一個(gè)重要組成部分。數(shù)據(jù)庫設(shè)計(jì)完成之后,就可以開始編碼任務(wù)了。編碼的目的當(dāng)然是為了實(shí)現(xiàn)程序的功能,滿足客戶的需求。本章將以FYblog項(xiàng)目為實(shí)例,一步步講解項(xiàng)目中各功能模塊是如何實(shí)現(xiàn)的。12.1 公共函數(shù)與類12.1.1 組織目錄結(jié)構(gòu)12.1.2 函數(shù)庫12.1.3 緩存技術(shù)12.2 前臺(tái)文章功能12.2.1 如何顯示文章列表12.2.2 博客系統(tǒng)日歷12.2.3 模糊搜索的原理12.3 用戶評(píng)論功能12.3.1 文章評(píng)論的查詢與顯示12.3.2 插入評(píng)論表情12.3.3 評(píng)論的提交與過濾12.3.4 驗(yàn)證碼技術(shù)12.4 站內(nèi)數(shù)據(jù)統(tǒng)計(jì)功能12.5 本章小結(jié)第13章 附件上傳與圖片處理在FYblog系統(tǒng)中,附件上傳是在后臺(tái)進(jìn)行的,本來這些知識(shí)應(yīng)該在后面的章節(jié)中進(jìn)行講解。但是,前臺(tái)也涉及比較多的附件處理,因此,本章將詳細(xì)講解附件上傳與圖片處理。本章中涉及的技術(shù)是很重要的。13.1 附件上傳13.1.1 多文件上傳13.1.2 上傳的實(shí)現(xiàn)13.2 附件調(diào)用13.2.1 數(shù)據(jù)系列化與反系列化13.2.2 附件調(diào)用13.3 圖像生成縮略圖13.3.1 計(jì)算縮略圖尺寸13.3.2 生成圖像13.4 圖像生成水印13.4.1 生成水印13.4.2 創(chuàng)建圖像文件13.5 博客相冊(cè)功能13.5.1 圖片列表的實(shí)現(xiàn)13.5.2 圖片的瀏覽13.6 本章小結(jié)第14章 登錄驗(yàn)證與權(quán)限系統(tǒng)登錄驗(yàn)證是指網(wǎng)站后臺(tái)的訪問權(quán)限驗(yàn)證,而權(quán)限系統(tǒng)是指用戶組權(quán)限劃分,二者是不同的兩個(gè)概念。登錄證的作用就不必多說了,網(wǎng)站后臺(tái)絕對(duì)不允許任何人訪問到。而權(quán)限系統(tǒng)的目的是將用戶按照權(quán)限高低劃分不同的等級(jí),不同的等級(jí)具有不同的操作權(quán)限。權(quán)限系統(tǒng)不僅僅限于后臺(tái),譬如一個(gè)論壇,前臺(tái)就得有權(quán)限劃分,一般有版主、超級(jí)版主、管理員、超級(jí)管理員、游客、正式注冊(cè)會(huì)員等不同等級(jí)。14.1 基于cookies和數(shù)據(jù)庫的登錄驗(yàn)證14.1.1 判斷登錄狀態(tài)14.1.2 登錄驗(yàn)證14.2 基于session的登錄驗(yàn)證14.3 權(quán)限系統(tǒng)設(shè)計(jì)14.4 本章小結(jié)第15章 后臺(tái)管理模塊前面幾章介紹了FYblog的一些基本功能,如文章顯示、附件處理、登錄驗(yàn)證等,這些基本上都是前臺(tái)功能。實(shí)際上FYblog系統(tǒng)后臺(tái)有著比較強(qiáng)大的功能,涉及文章管理、附件處理、評(píng)論管理、模板編輯、數(shù)據(jù)備份、日志管理等各個(gè)方面。而這些功能有很強(qiáng)的實(shí)用性,在實(shí)際的項(xiàng)目中是隨處可見的,因此本章將以FYblog系統(tǒng)為實(shí)例,逐一介紹PHP項(xiàng)目中各種后臺(tái)功能的實(shí)現(xiàn)技巧。15.1 文章管理模塊15.1.1 模板article.dll15.1.2 文章列表及文章搜索15.1.3 添加文章15.1.4 FCKeditor編輯器的配置15.1.5 批量移動(dòng)、刪除文章15.2 模板管理模塊15.2.1 程序模塊template.php15.2.2 模板template.dll15.3 評(píng)論管理模塊15.3.1 設(shè)置評(píng)論可見狀態(tài)15.3.2 批量處理評(píng)論15.4 友情鏈接管理模塊15.4.1 添加友情鏈接15.4.2 更新友情鏈接15.4.3 顯示友情鏈接列表15.5 數(shù)據(jù)管理模塊15.5.1 修復(fù)數(shù)據(jù)庫15.5.2 備份數(shù)據(jù)庫15.5.3 sqldumptable函數(shù)詳解15.5.4 導(dǎo)入RSS數(shù)據(jù)15.6 日志管理模塊15.6.1 后臺(tái)操作記錄15.6.2 后臺(tái)登錄記錄15.6.3 數(shù)據(jù)庫出錯(cuò)記錄15.6.4 日志的刪除15.6.5 日志的讀取15.6.6 前臺(tái)搜索記錄15.7 本章小結(jié)第16章 安全部署及優(yōu)化談到Web程序開發(fā),就不能不談到Web安全。Web安全可以簡單地理解為網(wǎng)站安全,它是網(wǎng)絡(luò)安全領(lǐng)域里面的一個(gè)重要組成部分。Web程序存在的安全問題,直接危及管理后臺(tái)、數(shù)據(jù)庫、服務(wù)器的安全,甚至威脅到整個(gè)內(nèi)部網(wǎng)絡(luò)的安全。一旦黑客發(fā)現(xiàn)了Web漏洞的利用方法,就可以突破程序的安全防線,非法進(jìn)入后臺(tái),查看數(shù)據(jù)庫里的機(jī)密數(shù)據(jù)(如會(huì)員資料等)。而且不僅僅如此,黑客還可以上傳腳本后門(通常稱作webshell),利用webshell可以完全控制網(wǎng)站,可以下載網(wǎng)站源代碼,還可以結(jié)合一些系統(tǒng)漏洞和系統(tǒng)的安全設(shè)置問題來提升權(quán)限。16.1 環(huán)境設(shè)置與程序安全16.1.1 設(shè)置PHP安全模式16.1.2 設(shè)置腳本訪問目錄16.1.3 設(shè)置禁用函數(shù)16.1.4 設(shè)置register_globals16.1.5 設(shè)置magic_quotes_gpc16.1.6 設(shè)置報(bào)錯(cuò)信息16.1.7 allow_url_fopen函數(shù)16.2 防范注入漏洞16.2.1 注入漏洞實(shí)例16.2.2 注入攻擊的原理16.2.3 注入漏洞的防范16.3 防范文件包含漏洞16.3.1 遠(yuǎn)程文件包含漏洞的原理16.3.2 遠(yuǎn)程文件包含漏洞的防范16.4 防范CC攻擊16.4.1 數(shù)據(jù)庫設(shè)計(jì)16.4.2 程序設(shè)計(jì)16.5 變量初始化16.6 防范跨站攻擊、灌水、廣告16.6.1 防范技巧16.6.2 跨站攻擊的危害16.7 本章小結(jié)第四篇 使用Ajax改善用戶體驗(yàn)第17章 Ajax概念與原理Ajax理念的出現(xiàn),揭開了無刷新更新頁面時(shí)代的序幕,并有代替?zhèn)鹘y(tǒng)Web開發(fā)中采用表單提交方式來更新Web頁面的趨勢。Ajax是具有變革性的,它使開發(fā)者得以擺脫原有單調(diào)的開發(fā)模式,從而開發(fā)出更易用、交互性更強(qiáng)的Web應(yīng)用程序。目前,Ajax的一些成功應(yīng)用有:Google主頁、Google Suggest、Google Maps、Gmail等,無論在視覺效果還是易用性上都給人帶來強(qiáng)烈的沖擊力。因此,Ajax的出現(xiàn)具有里程碑式的意義,并在短時(shí)間內(nèi)成為Web開發(fā)領(lǐng)域炙手可熱的技術(shù)。而JavaScript是Ajax的核心技術(shù)之一,在Ajax技術(shù)中起著不可替代的作用。本章將利用有限的篇幅,力求向讀者展示Ajax的風(fēng)采,以及JavaScript在Ajax中所扮演的重要角色。17.1 什么是Ajax17.1.1 Ajax的定義17.1.2 Ajax的誕生與發(fā)展17.2 為什么需要Ajax17.2.1 傳統(tǒng)的Web框架17.2.2 Ajax技術(shù)框架17.2.3 Ajax的優(yōu)勢17.3 Ajax核心技術(shù)17.3.1 JavaScript17.3.2 XMLHttpRequest17.3.3 DOM 40817.3.4 XML 40817.4 Ajax應(yīng)用實(shí)例17.4.1 Google主頁17.4.2 Google Maps17.5 Ajax應(yīng)用場景17.5.1 數(shù)據(jù)驗(yàn)證17.5.2 按需讀取數(shù)據(jù)17.5.3 自動(dòng)實(shí)時(shí)更新頁面17.6 使用Ajax17.6.1 創(chuàng)建XMLHttpRequest對(duì)象17.6.2 向服務(wù)器發(fā)送請(qǐng)求17.6.3 處理服務(wù)器響應(yīng)17.6.4 完整的Ajax框架17.6.5 開山之作:“Hello,Ajax”程序17.6.6 注冊(cè)信息實(shí)時(shí)驗(yàn)證實(shí)例17.6.7 級(jí)聯(lián)目錄實(shí)例17.6.8 自動(dòng)實(shí)時(shí)更新頁面17.6.9 小結(jié)17.7 Ajax的不足之處17.8 本章小結(jié)第18章 Ajax無刷新靜態(tài)分頁在上一章中對(duì)Ajax與服務(wù)器通信、發(fā)送請(qǐng)求和處理響應(yīng)等做了詳細(xì)介紹。理解Ajax技術(shù)的關(guān)鍵是理解XMLHttpRequest對(duì)象,熟悉文檔對(duì)象模型DOM。實(shí)際上,Ajax的用途非常廣泛,在程序開發(fā)過程中,翻頁技術(shù)的使用是非常普遍的,本章通過講解Ajax靜態(tài)翻頁技術(shù),幫助讀者通過實(shí)際的案例理解Ajax的應(yīng)用技巧。本章實(shí)例都在第12章建立的FYblog項(xiàng)目的基礎(chǔ)上創(chuàng)建。18.1 分頁技術(shù)概況18.1.1 傳統(tǒng)的分頁技術(shù)18.1.2 Ajax靜態(tài)分頁技術(shù)18.2 分頁技術(shù)的原理18.2.1 查詢的技巧18.2.2 翻頁函數(shù)18.3 Ajax與PHP之間的參數(shù)傳遞18.3.1 準(zhǔn)備工作18.3.2 參數(shù)傳遞18.4 無比流暢的靜態(tài)翻頁18.5 滑動(dòng)翻頁技術(shù)18.5.1 onMouseOver事件18.5.2 滑動(dòng)翻頁18.6 本章小結(jié)第19章 Ajax與表單處理前面兩章中對(duì)Ajax的一些應(yīng)用做了講解,其中主要講解了Ajax的GET方式的請(qǐng)求。從本章起將介紹POST方式的請(qǐng)求。表單在Web程序中極為常見,而且起著非常重要的作用。表單處理有很多細(xì)節(jié)問題,比如表單驗(yàn)證、密碼強(qiáng)度實(shí)時(shí)檢測等。Ajax技術(shù)的出現(xiàn)使得這些細(xì)節(jié)問題處理起來更方便,更加人性化。因此,本章將以表單為出發(fā)點(diǎn),介紹Ajax技術(shù)在表單處理方面的一些技巧,以及POST方式發(fā)送請(qǐng)求的技巧。本章大部分地方以FYblog中的有關(guān)代碼為例子。19.1 Ajax無刷新提交表單19.1.1 傳統(tǒng)的表單提交方式19.1.2 Ajax提交表單19.2 Ajax與表單驗(yàn)證19.2.1 基于客戶端的表單驗(yàn)證19.2.2 基于服務(wù)器端的表單驗(yàn)證19.2.3 兩種表單驗(yàn)證方式的比較19.3 表單實(shí)時(shí)檢測技術(shù)19.3.1 密碼強(qiáng)度檢測19.3.2 表單實(shí)時(shí)檢測19.4 本章小結(jié)第20章 Ajax定時(shí)更新技術(shù)本章將要介紹的是Ajax又一個(gè)很實(shí)用的功能,即Ajax定時(shí)更新技術(shù)。所謂定時(shí)更新技術(shù),簡單地說,是指采用Ajax技術(shù)定時(shí)地發(fā)出請(qǐng)求,或者定時(shí)地更新頁面某一節(jié)點(diǎn)的數(shù)據(jù)。此處談到的定時(shí)是指每間隔一定的時(shí)間更新一次或者指定更新的次數(shù)。嚴(yán)格地說,這種技術(shù)的實(shí)現(xiàn)基礎(chǔ)是JavaScript的定時(shí)器,然而Ajax技術(shù)使得這種技術(shù)更有價(jià)值,所以這種技術(shù)在很多情況下會(huì)用到。Ajax定時(shí)更新技術(shù)的作用很大,可以用在動(dòng)態(tài)顯示時(shí)間、隨機(jī)顯示新聞、抽獎(jiǎng)程序、發(fā)帖自動(dòng)保存草稿、聊天室定期刷新頁面等場合。當(dāng)然,不僅僅限于這些,掌握了Ajax定時(shí)更新技術(shù),還可以實(shí)現(xiàn)更多的效果,做更多的事情。因此,本章將系統(tǒng)地介紹Ajax定時(shí)更新技術(shù)。20.1 Ajax定時(shí)更新技術(shù)的原理20.1.1 定時(shí)更新的實(shí)現(xiàn)20.1.2 setInterval與setTimeout用法20.2 Ajax抽獎(jiǎng)程序20.2.1 需求分析20.2.2 程序設(shè)計(jì)20.3 Ajax自動(dòng)保存草稿功能20.3.1 Ajax與Cookies20.3.2 使用Cookies保存數(shù)據(jù)20.4 本章小結(jié)第21章 Ajax打造人性化的搜索用過Google搜索的人應(yīng)該都會(huì)發(fā)現(xiàn),它具有自動(dòng)完成功能。當(dāng)用戶輸入一個(gè)關(guān)鍵字之后,輸入框會(huì)列出與這個(gè)關(guān)鍵字有關(guān)的關(guān)鍵詞,并且顯示每個(gè)關(guān)鍵詞有多少條搜索記錄。這種自動(dòng)完成功能是一個(gè)新技術(shù),它使得搜索顯得非常人性化和智能化,可以為用戶提供方便,在一定程度上改善了用戶體驗(yàn)。然而,搜索不僅僅Google有,現(xiàn)在各種網(wǎng)站上基本都有站內(nèi)搜索入口,比如各種論壇、博客系統(tǒng)、文章系統(tǒng)等。21.1 Ajax無刷新搜索21.1.1 數(shù)據(jù)庫設(shè)計(jì)21.1.2 插入數(shù)據(jù)21.1.3 表單處理21.1.4 無刷新搜索21.1.5 Ajax搜索的分頁21.2 Ajax自動(dòng)完成功能21.2.1 Autocomplete框架1.4.3介紹21.2.2 建立關(guān)鍵詞數(shù)據(jù)庫21.2.3 調(diào)用JavaScript框架21.2.4 用Ajax實(shí)現(xiàn)自動(dòng)完成功能21.3 本章小結(jié)第22章 Ajax與拖動(dòng)層隨著Ajax技術(shù)的不斷成熟,用戶體驗(yàn)方面的創(chuàng)意也是越來越豐富。網(wǎng)絡(luò)上有許多開源的JavaScrpt框架,這些框架與Ajax結(jié)合可以實(shí)現(xiàn)非常復(fù)雜的效果,比如彈出層、Ajax拖拽提交、淡入淡出的菜單,以及一些更復(fù)雜的UI創(chuàng)意。當(dāng)然,這些效果也并不是都用到了Ajax技術(shù),有些是完全的JavaScrpt特效。常見的JavaScrpt框架有很多,比如基于Prototype的script.aculo.us、YahooUI,以及JQuery的各種插件等。這些JavaScrpt框架可以在很大的程度上改善用戶體驗(yàn),使得Web程序更具有創(chuàng)意和表現(xiàn)力,更有特色和吸引力,再加上Ajax的配合,Web程序已經(jīng)與傳統(tǒng)的表現(xiàn)方式有著本質(zhì)的區(qū)別。22.1 JavaScrpt實(shí)現(xiàn)層的彈出與拖動(dòng)22.1.1 設(shè)置彈出層的屬性22.1.2 設(shè)置彈出層的樣式22.1.3 層的彈出22.1.4 層的拖動(dòng)22.2 Ajax與彈出層22.2.1 首頁模板index.html22.2.2 定義彈出窗口屬性(show.js)22.2.3 響應(yīng)Ajax請(qǐng)求(add.php)22.2.4 后臺(tái)處理(do.php)22.2.5 Ajax與彈出層交互22.3 定時(shí)彈出窗口22.3.1 個(gè)性化的彈出窗口22.3.2 定時(shí)彈出窗口22.4 本章小結(jié)第23章 Ajax改善用戶體驗(yàn)綜合篇前面幾章中介紹了Ajax技術(shù)的一些常見用法,但是Ajax技術(shù)的用法很多,而且很多時(shí)候體現(xiàn)在一些細(xì)節(jié)上。對(duì)于Ajax技術(shù)的應(yīng)用很難都一一介紹到,但是如果舉一反三,能夠靈活貫通,應(yīng)用Ajax技術(shù)時(shí)就可以隨心所欲了。凡是適合使用Ajax的地方,就可以考慮使用它。網(wǎng)絡(luò)上對(duì)于Ajax的討論和研究實(shí)在太多了,這在一定程度上增加了Ajax的神秘性和復(fù)雜性,實(shí)際上,Ajax并不神秘。本章將結(jié)合具體的實(shí)例,再介紹Ajax技術(shù)的幾種用法,作為對(duì)前面章節(jié)的一些補(bǔ)充和總結(jié)。在本章的例子中,實(shí)現(xiàn)的功能并不是最重要的,其思路及實(shí)現(xiàn)過程才是值得注意的。23.1 可以動(dòng)態(tài)編輯的文本23.1.1 動(dòng)態(tài)編輯文本的實(shí)現(xiàn)23.1.2 靜態(tài)模板demo1.html23.1.3 處理Ajax請(qǐng)求23.2 Ajax動(dòng)態(tài)聯(lián)動(dòng)下拉框23.2.1 前臺(tái)程序demo2.html23.2.2 后臺(tái)處理server.php23.2.3 數(shù)據(jù)庫設(shè)計(jì)23.2.4 Ajax動(dòng)態(tài)聯(lián)動(dòng)下拉框效果23.3 Ajax升序、降序排列數(shù)據(jù)23.3.1 數(shù)據(jù)庫設(shè)計(jì)23.3.2 前臺(tái)程序設(shè)計(jì)23.3.3 后臺(tái)程序設(shè)計(jì)23.3.4 Ajax升序、降序的效果23.4 本章小結(jié)第24章 Ajax動(dòng)態(tài)更新頁面數(shù)據(jù)在FYblog系統(tǒng)中,前臺(tái)部分用到了相當(dāng)多的Ajax技術(shù),使得前臺(tái)有且僅有一個(gè)靜態(tài)頁面來完成用戶交互及數(shù)據(jù)傳輸。Ajax的重要用途之一是動(dòng)態(tài)更新頁面數(shù)據(jù),即在不刷新、不跳轉(zhuǎn)的情況下,更新頁面局部的內(nèi)容。本章將結(jié)合FYblog系統(tǒng),以實(shí)例的形式介紹Ajax動(dòng)態(tài)更新頁面數(shù)據(jù)的一些技巧。值得注意的是,理解Ajax如何與PHP進(jìn)行交互也是很關(guān)鍵的。24.1 AJAXRequest24.2 Ajax與服務(wù)器通信,發(fā)送請(qǐng)求和處理響應(yīng)24.2.1 調(diào)用Ajax框架24.2.2 Ajax發(fā)送請(qǐng)求24.2.3 處理Ajax請(qǐng)求24.3 Ajax無刷新更新數(shù)據(jù)24.3.1 觸發(fā)Ajax請(qǐng)求24.3.2 動(dòng)態(tài)更新數(shù)據(jù)24.4 本章小結(jié)

編輯推薦

  本書以真實(shí)項(xiàng)目開發(fā)的技術(shù)需求為藍(lán)圖,安排實(shí)踐者真正需要的內(nèi)容。在基礎(chǔ)知識(shí)講解部分,按照初學(xué)者的學(xué)習(xí)習(xí)慣,詳細(xì)介紹技術(shù)點(diǎn),對(duì)復(fù)雜知識(shí)配以實(shí)例。本書將PHP+Ajax開發(fā)項(xiàng)目中的典型問題全部融入了搭建功能完善的Blog系統(tǒng)的過程中,讓讀者學(xué)與用兼得。本書的代碼標(biāo)注清晰,無論是PHP代碼還是JavaScript代碼都進(jìn)行仔細(xì)注釋,力求讀者容易掌握。

圖書封面

圖書標(biāo)簽Tags

評(píng)論、評(píng)分、閱讀與下載


    PHP+Ajax Web 2.0編程技術(shù)與項(xiàng)目開發(fā)大全 PDF格式下載


用戶評(píng)論 (總計(jì)0條)

 
 

 

250萬本中文圖書簡介、評(píng)論、評(píng)分,PDF格式免費(fèi)下載。 第一圖書網(wǎng) 手機(jī)版

京ICP備13047387號(hào)-7