php和mysql web開發

php和mysql web開發

《php和mysql web開發》,是2009年機械工業出版社出版的圖書,作者是LukeWellingLauraThomson。

基本信息

內容簡介

本書將PHP開發與MySQL套用相結合,分別對PHP和MySQL做了深入淺出的分析,不僅介紹PHP和MySQL的一般概念,而且對PHP和MySQL的Web套用做了較全面的闡述,並包括幾個經典且實用的例子。

本書是第4版,經過了全面的更新、重寫和擴展,包括PHP5.3最新改進的特性(例如,更好的錯誤和異常處理),MySQL的存儲過程和存儲引擎,Ajax技術與Web2.0以及Web套用需要注意的安全問題。

PHP 獨特的語法混合了 C、Java、Perl 以及 PHP 自創新的語法。它可以比 CGI或者Perl更快速的執行動態網頁。用PHP做出的動態頁面與其他的程式語言相比,PHP是將程式嵌入到HTML文檔中去執行,執行效率比完全生成HTML標記的CGI要高許多;PHP還可以執行編譯後代碼,編譯可以達到加密和最佳化代碼運行,使代碼運行更快。PHP具有非常強大的功能,所有的CGI的功能PHP都能實現,而且支持幾乎所有流行的資料庫以及作業系統。最重要的是PHP可以用C、C++進行程式的擴展!

作者簡介

LauraThomson是Mozilla公司的高級軟體工程師。之前,她是OmniTI公司和Tangled

WebDesign公司的合伙人。此外,Laura曾經在RMIT大學和波士頓顧問集團工作過。她獲得了套用科學(計算機科學)的學士學位和工程學(計算機系統工程)學士學位。在她的空閒時間,她非常喜歡騎馬,討論免費軟體和開源軟體以及睡覺。

LukeWelling是OmniTI公司的一位Web架構師,他經常在一些國際會議(例如,OSCON,ZendCon,MySQLUC,HPCon,OSDC以及LinuxTag)中就開源和Web開發的話題發表演講。在加入OmniTI公司之前,他曾作為資料庫提供商的Web分析師為Hitwise公司工作。此外,他還是TangledWebDesign公司的獨立顧問。他還在澳大利亞墨爾本的RMIT大學教授計算機科學課程。他獲得了套用科學(計算機科學)的學士學位。在他的空閒時間,他希望治好他的失眠症。

其他參與者:

JulieC.Meloni是i2iInteractive公司的技術總監,這是一家位於加利弗里亞LosAltos的多媒體公司。她從Web一問世以及出現首個GUIWeb瀏覽器時就致力於基於Web的套用開發。她編著過大量書籍,撰寫過大量關於Web開發語言和數據的問題,其中包括銷售情況良好的《SamsTeachYourselfPHP,MySQL,andApacheAllinOne》。

AdamDeFields是Web套用開發方面,項目管理以及UI設計方面的顧問。他居住在密西根的GrandRapids。在這個城市,有他自己的公司EmanationSystems,LLC,這是一家在2002年成立的公司。他參加過使用不同技術實現的Web開發項目,但是,他還是最喜歡開發基於PHP/MySQL的項目。

MarcWandschneider是一個軟體開發方面的自由職業者,此外他還是作家和演講者,經常在全球範圍參與有意思的項目開發。最近,他的注意力集中在編寫健壯和可擴展的Web套用。在2005年,他編寫了一本名為《CoreWebApplicationProgramming withPHPandMySQL》的圖書。此前,他是SWiK開源社區的主要開發人員。目前,Marc居住在北京,他將他的時間花在中文學習和編程。

目錄

讀者反饋

譯者序

前言

作者簡介

第一篇使用PHP

第1章PHP快速入門教程1

1.1開始之前:了解PHP

1.2創建一個示例套用:Bob汽車零部件商店2

1.2.1創建訂單表單2

1.2.2表單處理4

1.3在HTML中嵌入PHP4

1.3.1使用PHP標記5

1.3.2PHP語句6

1.3.3空格6

1.3.4注釋7

1.4添加動態內容8

1.4.1調用函式8

1.4.2使用date()函式9

1.5訪問表單變數9

1.5.1簡短、中等以及長風格的表單變數9

1.5.2字元串的連線11

1.5.3變數和文本12

1.6理解標識符13

1.7檢查變數類型13

1.7.1PHP的數據類型

1.7.2類型強度

1.7.3類型轉換

1.7.4可變變數

1.8聲明和使用常量13

1.9理解變數的作用域13

1.10使用操作符16

1.10.1算術操作符17

1.10.2字元串操作符17

1.10.3賦值操作符17

1.10.4比較操作符19

1.10.5邏輯操作符20

1.10.6位操作符21

1.10.7其他操作符21

1.11計算表單總金額23

1.12理解操作符的優先權和結合性:

1.13使用可變函式25

1.13.1測試和設定變數類型26

1.13.2測試變數狀態26

1.13.3變數的重解釋27

1.14根據條件進行決策27

1.14.1if語句28

1.14.2代碼塊28

1.14.3else語句28

1.14.4elseif語句29

1.14.5switch語句30

1.14.6比較不同的條件31

1.15通過疊代實現重複動作32

1.15.1while循環33

1.15.2for和foreach循環34

1.15.3do...while循環35

1.16從控制結構或腳本中跳出35

1.17使用可替換的控制結構語法36

1.18使用declare36

1.19下一章37

第2章數據的存儲與檢索38

2.1保存數據以便後期使用38

2.2存儲和檢索Bob的訂單38

2.3檔案處理39

2.4打開檔案40

2.4.1選擇檔案模式40

2.4.2使用fopen()打開檔案40

2.4.3通過FTP或HTTP打開檔案42

2.4.4解決打開檔案時可能遇到的問題42

2.5寫檔案44

2.5.1fwrite()的參數44

2.5.2檔案格式45

2.6關閉檔案45

2.7讀檔案47

2.7.1以唯讀模式打開檔案:fopen()48

2.7.2知道何時讀完檔案:feof()48

2.7.3每次讀取一行數據:fgets()、fgetss()和fgetcsv()49

2.7.4讀取整個檔案:readfile()、fpassthru()和file()49

2.7.5讀取一個字元:fgetc()50

2.7.6讀取任意長度:fread()51

2.8使用其他有用的檔案函式51

2.8.1查看檔案是否存在:file_exists()51

2.8.2確定檔案大小:filesize()51

2.8.3刪除一個檔案:unlink()51

2.8.4在檔案中定位:rewind()、fseek()和ftell()52

2.9檔案鎖定52

2.10更好的方式:資料庫管理系統53

2.10.1使用普通檔案的幾個問題54

2.10.2RDBMS是如何解決這些問題的54

2.11進一步學習54

2.12下一章55

第3章使用數組56

3.1什麼是數組56

3.2數字索引數組57

3.2.1數字索引數組的初始化57

3.2.2訪問數組的內容57

3.2.3使用循環訪問數組58

3.3使用不同索引的數組59

3.3.1初始化相關數組59

3.3.2訪問數組元素59

3.3.3使用循環語句59

3.4數組操作符60

3.5多維數組61

3.6數組排序64

3.6.1使用sort()函式64

3.6.2使用asort()函式和ksort()函式對相關數組排序64

3.6.3反向排序65

3.7多維數組的排序65

3.7.1用戶定義排序65

3.7.2反向用戶排序66

3.8對數組進行重新排序67

3.8.1使用shuffle()函式67

3.8.2使用array_reverse()函式68

3.9從檔案載入數組69

3.10執行其他的數組操作71

3.10.1在數組中瀏覽:each()、current()、reset()、end()、next()、pos()和prev()71

3.10.2對數組的每一個元素套用任何函式:array_walk()72

3.10.3統計數組元素個數:count()、sizeof()和array_count_values()73

3.10.4將數組轉換成標量變數:extract()73

3.11進一步學習75

3.12下一章75

第4章字元串操作與正則表達式76

4.1創建一個示例應用程式:智慧型表單郵件76

4.2字元串的格式化78

4.2.1字元串的整理:chop()、ltrim()和trim()78

4.2.2格式化字元串以便顯示78

4.2.3格式化字元串以便存儲:addslashes()和stripslashes()81

4.3用字元串函式連線和分割字元串82

4.3.1使用函式explode()、implode()和join()82

4.3.2使用strtok()函式83

4.3.3使用substr()函式83

4.4字元串的比較84

4.4.1字元串的排序:strcmp()、strcasecmp()和strnatcmp()84

4.4.2使用strlen()函式測試字元串的長度85

4.5使用字元串函式匹配和替換子字元串85

4.5.1在字元串中查找字元串:strstr()、strchr()、strrchr()和stristr()85

4.5.2查找子字元串的位置:strpos()、strrpos()86

4.5.3替換子字元串:str_replace()、substr_replace()87

4.6正則表達式的介紹88

4.6.1基礎知識88

4.6.2字元集和類88

4.6.3重複89

4.6.4子表達式89

4.6.5子表達式計數90

4.6.6定位到字元串的開始或末尾90

4.6.7分支90

4.6.8匹配特殊字元90

4.6.9特殊字元一覽91

4.6.10在智慧型表單中套用91

4.7用正則表達式查找子字元串92

4.8使用正則表達式分割字元串93

4.9比較字元串函式和正則表達式函式93

4.10進一步學習93

4.11下一章93

第5章代碼重用與函式編寫94

5.1代碼重用的好處

5.1.1成本94

5.1.2可靠性94

5.1.3一致性95

5.2使用require()和include()函式95

5.2.1檔案擴展名和require()語句96

5.2.2使用require()製作Web站點的模版96

5.2.3使用auto_prepend_file和auto_append_file101

5.3在PHP中使用函式101

5.3.1調用函式101

5.3.2調用未定義的函式103

5.3.3理解字母大小寫和函式名稱103

5.4理解為什麼要定義自己的函式103

5.5了解基本的函式結構104

5.5.1函式命名

5.6使用參數105

5.7理解作用域107

5.8參數的引用傳遞和值傳遞109

5.9使用Return關鍵字110

5.9.1從函式返回一個值111

5.10實現遞歸113

5.10.1名稱空間

5.11進一步學習114

5.12下一章114

第6章面向對象的PHP115

6.1理解面向對象的概念115

6.1.1類和對象115

6.1.2多態性116

6.1.3繼承117

6.2在PHP中創建類、屬性和操作117

6.2.1類的結構117

6.2.2構造函式118

6.2.3析構函式118

6.3類的實例化118

6.4使用類的屬性119

6.5使用private和public關鍵字控制訪問121

6.6類操作的調用121

6.7在PHP中實現繼承122

6.7.1通過繼承使用private和protected訪問修飾符控制可見性123

6.7.2重載124

6.7.3使用final關鍵字禁止繼承和重載125

6.7.4理解多重繼承126

6.7.5實現接口126

6.8類的設計127

6.9編寫類代碼128

6.10理解PHP面向對象新的高級功能135

6.10.1使用Per-Class常量135

6.10.2實現靜態方法135

6.10.3檢查類的類型和類型提示136

6.10.4克隆對象136

6.10.5使用抽象類137

6.10.6使用__call()重載方法137

6.10.7使用__autoload()方法138

6.10.8實現疊代器和疊代138

6.10.9將類轉換成字元串140

6.10.10使用Reflection(反射)API140

6.11下一章141

第7章錯誤和異常處理142

7.1異常處理的概念142

7.2Exception類144

7.3用戶自定義異常144

7.4Bob的汽車零部件商店應用程式的異常146

7.5異常和PHP的其他錯誤處理機制150

7.6進一步學習150

7.7下一章150

第二篇使用MySQL

第8章設計Web資料庫151

8.1關係資料庫的概念152

8.1.1表格152

8.1.2列152

8.1.3行152

8.1.4值152

8.1.5鍵152

8.1.6模式153

8.1.7關係153

8.2如何設計Web資料庫154

8.2.1考慮要建模的實際對象154

8.2.2避免保存冗餘數據154

8.2.3使用原子列值155

8.2.4選擇有意義的鍵156

8.2.5考慮需要詢問資料庫的問題156

8.2.6避免多個空屬性的設計156

8.2.7表格類型的總結157

8.3Web資料庫架構157

8.4進一步學習158

8.5下一章158

第9章創建Web資料庫159

9.1使用MySQL監視程式160

9.2登錄到MySQL160

9.3創建資料庫和用戶161

9.4設定用戶與許可權162

9.5MySQL許可權系統的介紹162

9.5.1最少許可權原則162

9.5.2創建用戶:GRANT命令162

9.5.3許可權的類型和級別163

9.5.4REVOKE命令165

9.5.5使用GRANT和REVOKE的例子165

9.6創建一個Web用戶166

9.7使用正確的資料庫166

9.8創建資料庫表167

9.8.1理解其他關鍵字的意思168

9.8.2理解列的類型169

9.8.3用SHOW和DESCRIBE來查看資料庫170

9.8.4創建索引171

9.9理解MySQL的標識符171

9.10選擇列數據類型172

9.10.1數字類型173

9.10.2日期和時間類型174

9.10.3字元串類型174

9.11進一步學習176

9.12下一章176

第10章使用MySQL資料庫177

10.1SQL是什麼177

10.2在資料庫中插入數據177

10.3從資料庫中獲取數據179

10.3.1獲取滿足特定條件的數據181

10.3.2從多個表中獲取數據182

10.3.3以特定的順序獲取數據186

10.3.4分組與合計數據186

10.3.5選擇要返回的行188

10.3.6使用子查詢188

10.4更新資料庫記錄190

10.5創建後修改表191

10.6刪除資料庫中的記錄193

10.7表的刪除193

10.8刪除整個資料庫193

10.9進一步學習194

10.10下一章194

第11章使用PHP從Web訪問MySQL資料庫195

11.1Web資料庫架構的工作原理195

11.2從Web查詢資料庫的基本步驟198

11.2.1檢查與過濾用戶輸入數據198

11.2.2建立一個連線199

11.2.3選擇使用的資料庫200

11.2.4查詢資料庫200

11.2.5檢索查詢結果201

11.2.6從資料庫下線202

11.3將新信息放入資料庫202

11.4使用Prepared語句205

11.5使用PHP與資料庫互動的其他接口206

11.5.1使用常規的資料庫接口:PEARMDB2206

11.6進一步學習209

11.7下一章209

第12章MySQL高級管理210

12.1深入理解許可權系統210

12.1.1user表211

12.1.2db表和host表212

12.1.3tables_priv表,columns_priv表和procs_priv表212

12.1.4訪問控制:MySQL如何使用Grant表213

12.1.5更新許可權:修改什麼時候生效213

12.2提高MySQL資料庫的安全性214

12.2.1從作業系統角度來保護MySQL214

12.2.2密碼214

12.2.3用戶許可權215

12.2.4Web問題215

12.3獲取更多關於資料庫的信息216

12.3.1使用SHOW獲取信息216

12.3.2使用DESCRIBE獲取關於列的信息218

12.3.3用EXPLAIN理解查詢操作的工作過程218

12.4資料庫的最佳化221

12.4.1設計最佳化222

12.4.2許可權222

12.4.3表的最佳化222

12.4.4使用索引222

12.4.5使用默認值222

12.4.6其他技巧222

12.5備份MySQL資料庫222

12.6恢復MySQL資料庫223

12.7實現複製223

12.7.1設定主伺服器224

12.7.2執行初始的數據傳輸224

12.7.3設定一個/多個從伺服器225

12.8進一步學習225

12.9下一章225

第13章MySQL高級編程226

13.1LOADDATAINFILE語句226

13.2存儲引擎226

13.3事務227

13.3.1理解事務的定義227

13.3.2通過InnoDB使用事務228

13.4外鍵229

13.5存儲過程230

13.5.1基本示例230

13.5.2局部變數232

13.5.3游標和控制結構233

13.6進一步學習236

13.7下一章236

第三篇電子商務與安全性

第14章運營一個電子商務網站237

14.1我們要實現什麼目標237

14.2考慮電子商務網站的類型237

14.2.1使用線上說明書公布信息238

14.2.2接收產品或服務的訂單240

14.2.3提供服務和數字產品243

14.2.4為產品或服務增值243

14.2.5減少成本243

14.3理解風險和威脅244

14.3.1網路黑客244

14.3.2不能招攬足夠的生意245

14.3.3計算機硬體故障245

14.3.4電力、通信、網路或運輸故障245

14.3.5廣泛的競爭245

14.3.6軟體錯誤245

14.3.7不斷變化的政府政策和稅收246

14.3.8系統容量限制246

14.4選擇一個策略246

14.5下一章246

第15章電子商務的安全問題247

15.1信息的重要程度247

15.2安全威脅248

15.2.1機密數據的泄露248

15.2.2數據丟失和數據破壞249

15.2.3數據修改250

15.2.4拒絕服務251

15.2.5軟體錯誤251

15.2.6否認252

15.3易用性,性能、成本和安全性253

15.4建立一個安全政策253

15.5身份驗證原則254

15.6加密技術基礎255

15.6.1私有密鑰加密256

15.6.2公有密鑰加密256

15.6.3數字簽名256

15.7數字證書257

15.8安全的Web伺服器258

15.9審計與日誌記錄259

15.10防火牆259

15.11備份數據259

15.11.1備份常規檔案260

15.11.2備份與恢復MySQL資料庫260

15.12自然環境安全260

15.13下一章261

第16章Web套用的安全

16.1處理安全性問題的策略

16.1.1以正確心態為開始

16.1.2安全性和可用性之間的平衡

16.1.3安全監視

16.1.4基本方法

16.2識別所面臨的威脅

16.2.1訪問或修改敏感數據

16.2.2數據丟失或破壞

16.2.3拒絕服務

16.2.4惡意代碼注入

16.2.5伺服器被攻破

16.3了解與我們“打交道”的用戶

16.3.1破解人員

16.3.2受影響機器的未知情用戶

16.3.3對公司不滿的員工

16.3.4硬體被盜

16.3.5我們自身

16.4代碼的安全性

16.4.1過濾用戶輸入

16.4.2轉義輸出

16.4.3代碼組織

16.4.4代碼自身的問題

16.4.5檔案系統因素

16.4.6代碼穩定性和缺陷

16.4.7執行引號和exec

16.5Web伺服器和PHP的安全性

16.5.1保持軟體的更新

16.5.2查看php.ini檔案

16.5.3Web伺服器配置

16.5.4Web套用的商業主機服務

16.6資料庫伺服器的安全性

16.6.1用戶和許可權系統

16.6.2傳送數據至伺服器

16.6.3連線伺服器

16.6.4運行伺服器

16.7保護網路

16.7.1安裝防火牆

16.7.2使用隔離區域(DMZ)

16.7.3應對DoS和DDoS攻擊

16.8計算機和作業系統的安全性

16.8.1保持作業系統的更新

16.8.2隻運行必須的軟體

16.8.3伺服器的物理安全性

16.9災難計畫

16.10下一章

第17章使用PHP和MySQL實現身份驗證262

17.1識別訪問者262

17.2實現訪問控制263

17.2.1保存密碼265

17.2.2密碼的加密267

17.2.3保護多個網頁268

17.3使用基本身份驗證269

17.4在PHP中使用基本身份驗證270

17.5在Apache的.htaccess檔案中使用基本身份驗證271

17.6使用mod_auth_mysql身份驗證276

17.6.1安裝mod_auth_mysql276

17.6.2使用mod_auth_mysql277

17.7創建自定義身份驗證277

17.8進一步學習278

17.9下一章278

第18章使用PHP和MySQL實現安全事務279

18.1提供安全的事務處理279

18.1.1用戶機器280

18.1.2Internet281

18.1.3我們的系統281

18.2使用加密套接字層(SSL)282

18.3禁止用戶的輸入284

18.4提供安全存儲284

18.5存儲信用卡號碼285

18.6在PHP中使用加密技術286

18.6.1安裝GPG286

18.6.2測試GPG288

18.7進一步學習293

18.8下一章293

第四篇PHP的高級技術

第19章與檔案系統和伺服器的互動295

19.1檔案上載295

19.1.1檔案上載的HTML代碼296

19.1.2編寫處理檔案的PHP297

19.1.3避免常見上載問題300

19.2使用目錄函式300

19.2.1從目錄讀取300

19.2.2獲得當前目錄的信息302

19.2.3創建和刪除目錄302

19.3與檔案系統的互動302

19.3.1獲取檔案信息302

19.3.2更改檔案屬性304

19.3.3創建、刪除和移動檔案305

19.4使用程式執行函式305

19.5與環境變數互動:getenv()和putenv()308

19.6進一步學習308

19.7下一章308

第20章使用網路函式和協定函式309

20.1了解可供使用的協定309

20.2傳送和讀取電子郵件309

20.3使用其他Web站點的數據310

20.4使用網路查找函式312

20.5備份或鏡像一個檔案

20.5.1使用FTP備份或鏡像一個檔案316

20.5.2上傳檔案321

20.5.3避免逾時321

20.5.4使用其他的FTP函式322

20.6進一步學習322

20.7下一章323

第21章日期和時間的管理324

21.1在PHP中獲取日期和時間324

21.1.1使用date()函式324

21.1.2使用UNIX時間戳325

21.1.3使用getdate()函式326

21.1.4使用checkdate()函式檢驗日期有效性327

21.1.5格式化時間戳

21.2在PHP日期格式和MySQL日期格式之間進行轉換327

21.3在PHP中計算日期329

21.4在MySQL中計算日期329

21.5使用微秒331

21.6使用日曆函式331

21.7進一步學習332

21.8下一章332

第22章創建圖像333

22.1在PHP中設定圖像支持333

22.2理解圖像格式334

22.2.1JPEG334

22.2.2PNG334

22.2.3WBMP335

22.2.4GIF335

22.3創建圖像335

22.3.1創建一個背景圖像336

22.3.2在圖像上繪圖或列印文本337

22.3.3輸出最終圖形338

22.3.4清理339

22.4在其他頁面中使用自動生成的圖像339

22.5使用文本和字型創建圖像339

22.5.1創建基本畫布342

22.5.2將文本調整到適合按鈕342

22.5.3放置文本345

22.5.4將文本寫到按鈕上345

22.5.5完成345

22.6繪製圖像與用圖表描繪數據346

22.7使用其他的圖像函式352

22.8進一步學習352

22.9下一章353

第23章在PHP中使用會話控制354

23.1什麼是會話控制354

23.2理解基本的會話功能354

23.2.1什麼是cookie354

23.2.2通過PHP設定cookie355

23.2.3在會話中使用cookie355

23.2.4存儲會話ID356

23.3實現簡單的會話356

23.3.1開始一個會話356

23.3.2註冊一個會話變數356

23.3.3使用會話變數357

23.3.4註銷變數與銷毀會話357

23.4創建一個簡單的會話例子357

23.5配置會話控制359

23.6通過會話控制實現身份驗證360

23.7進一步學習365

23.8下一章365

第24章其他有用的特性366

24.1使用eval()函式對字元串求值367

24.2終止執行:die和exit367

24.3序列化變數和對象368

24.4獲取PHP環境信息369

24.4.1找到所載入的PHP擴展部件369

24.4.2識別腳本所有者370

24.4.3確定腳本最近修改時間370

24.5暫時改變運行時環境370

24.6原始碼加亮371

24.7在命令行中使用PHP372

24.8下一章372

第五篇創建實用的PHP和MySQL項目

第25章在大型項目中使用PHP和MySQL373

25.1在Web開發中套用軟體工程374

25.2規劃和運行Web應用程式項目374

25.3重用代碼375

25.4編寫可維護代碼375

25.4.1編碼標準375

25.4.2分解代碼378

25.4.3使用標準的目錄結構378

25.4.4文檔化和共享內部函式378

25.5實現版本控制379

25.6選擇一個開發環境380

25.7項目的文檔化380

25.8建立原型381

25.9將邏輯和內容分離381

25.10最佳化代碼382

25.10.1使用簡單最佳化382

25.10.2使用Zend產品382

25.11測試383

25.12進一步學習383

25.13下一章384

第26章調試385

26.1編程錯誤385

26.1.1語法錯誤385

26.1.2運行時錯誤386

26.1.3邏輯錯誤391

26.2使用變數幫助調試392

26.3錯誤報告級別393

26.4改變錯誤報告設定394

26.5觸發自定義錯誤395

26.6巧妙地處理錯誤396

26.7下一章398

第27章建立用戶身份驗證機制和個性化設定399

27.1解決方案的組成399

27.1.1用戶識別和個性化設定399

27.1.2保存書籤400

27.1.3推薦書籤400

27.2解決方案概述400

27.3實現資料庫402

27.4實現基本的網站403

27.5實現用戶身份驗證405

27.5.1註冊405

27.5.2登錄410

27.5.3登出413

27.5.4修改密碼414

27.5.5重設遺忘的密碼416

27.6實現書籤的存儲和檢索420

27.6.1添加書籤420

27.6.2顯示書籤422

27.6.3刪除書籤422

27.7實現書籤推薦424

27.8考慮可能的擴展427

27.9下一章427

第28章創建一個購物車428

28.1解決方案的組成428

28.1.1創建一個線上目錄428

28.1.2在用戶購買商品的時候記錄購買行為429

28.1.3實現一個付款系統429

28.1.4創建一個管理界面429

28.2解決方案概述429

28.3實現資料庫432

28.4實現線上目錄434

28.4.1列出目錄434

28.4.2列出一個目錄中的所有圖書437

28.4.3顯示圖書詳細信息438

28.5實現購物車440

28.5.1使用show_cart.php腳本440

28.5.2瀏覽購物車442

28.5.3將物品添加到購物庫444

28.5.4保存更新後的購物車446

28.5.5列印標題欄摘要447

28.5.6結賬447

28.6實現付款452

28.7實現一個管理界面454

28.8擴展該項目460

28.9使用一個已有系統461

28.10下一章461

第29章創建一個基於Web的電子郵件服務系統486

29.1解決方案的組成486

29.1.1電子郵件協定:POP3和IMAP

29.1.2PHP對POP3和IMAP的支持

29.2解決方案概述488

29.3建立資料庫489

29.4了解腳本架構490

29.5登錄與登出495

29.6建立賬戶498

29.6.1創建一個新賬戶499

29.6.2修改已有賬戶501

29.6.3刪除賬戶501

29.7閱讀郵件502

29.7.1選擇賬戶502

29.7.2查看信箱內容504

29.7.3閱讀郵件訊息507

29.7.4查看訊息標題509

29.7.5刪除郵件509

29.8傳送郵件510

29.8.1傳送一則新訊息510

29.8.2回復或轉發郵件512

29.9擴展這個項目514

29.10下一章514

第30章創建一個郵件列表管理器515

30.1解決方案的組成515

30.1.1建立列表和訂閱者資料庫516

30.1.2上載新聞信件516

30.1.3傳送帶附屬檔案的郵件516

30.2解決方案概述516

30.3建立資料庫518

30.4定義腳本架構520

30.5實現登錄526

30.5.1新賬戶的創建527

30.5.2登錄529

30.6用戶函式的實現531

30.6.1查看列表531

30.6.2查看郵件列表信息535

30.6.3查看郵件列表存檔536

30.6.4訂閱與取消訂閱538

30.6.5更改賬戶設定539

30.6.6更改密碼539

30.6.7登出540

30.7管理功能的實現541

30.7.1創建新的郵件列表541

30.7.2上載新的新聞信件543

30.7.3多檔案上載的處理545

30.7.4預覽新聞信件549

30.7.5傳送郵件550

30.8擴展這個項目555

30.9下一章555

第31章創建一個Web論壇556

31.1理解流程

31.2解決方案的組成556

31.3解決方案概述557

31.4資料庫的設計558

31.5查看文章的樹型結構560

31.5.1展開和摺疊561

31.5.2顯示文章564

31.5.3使用treenode類564

31.6查看單個的文章570

31.7添加新文章572

31.8添加擴充578

31.9使用一個已有的系統578

31.10下一章578

第32章生成PDF格式的個性化文檔579

32.1項目概述

32.1.1評估文檔格式579

32.2解決方案的組成582

32.2.1問題與回答系統583

32.2.2文檔生成軟體583

32.3解決方案概述585

32.3.1提問585

32.3.2給答題評分587

32.3.3生成RTF證書589

32.3.4從模板生成PDF證書591

32.3.5使用PDFlib生成PDF文檔595

32.3.6使用PDFlib的一個“HelloWorld”程式595

32.3.7用PDFlib生成證書598

32.4處理標題的問題605

32.5擴展該項目605

32.6下一章606

第33章使用XML和SOAP來連線Web服務607

33.1項目概述:使用XML和Web服務

33.1.1理解XML

33.1.2理解Web服務611

33.2解決方案的組成612

33.2.1使用Amazon的Web服務接口613

33.2.2XML的解析:REST回響

33.2.3在PHP中使用SOAP614

33.2.4快取614

33.3解決方案概述614

33.3.1核心應用程式618

33.3.2顯示特定種類的圖書623

33.3.3獲得一個AmazonResultSet類624

33.3.4使用REST傳送和接收請求

33.3.5使用SOAP傳送和接收請求

33.3.6快取請求返回的數據636

33.3.7創建購物車639

33.3.8到Amazon付賬642

33.4安裝項目代碼642

33.5擴展這個項目643

33.6進一步學習643

第34章使用Ajax構建Web2.0套用

34.1Ajax是什麼?

34.1.1HTTP請求和回響

34.1.2DHTML和XHTML

34.1.3級聯樣式單(CSS)

34.1.4客戶端編程

34.1.5伺服器端編程

34.1.6XML和XSLT

34.2Ajax基礎

34.2.1XMLHTTPRequest對象

34.2.2與伺服器通信

34.2.3處理伺服器回響

34.2.4整合套用

34.3在以前的項目添加Ajax元素

34.3.1在PHPBookmark套用中添加Ajax元素

34.4進一步學習

34.4.1進一步了解文檔對象模型(DOM)

34.4.2Ajax套用可用的JavaScript函式館

34.4.3Ajax開發人員網站

第六篇附錄

附錄A安裝PHP及MySQL645

附錄BWeb資源664

第1章PHP快速入門教程

第2章數據的存儲與檢索

第3章使用數組

第4章字元串操作與正則表達式

第5章代碼重用與函式編寫

第6章面向對象的PHP

第7章錯誤和異常處理

……

相關詞條

相關搜尋

熱門詞條

聯絡我們