程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> PHP和MySQL Web開發(原書第4版)

PHP和MySQL Web開發(原書第4版)

編輯:MySQL綜合教程


【內容簡介】
       本書將PHP開發與MySQL應用相結合,分別對PHP和MySQL做了深入淺出的分析,不僅介紹PHP和MySQL的一般概念,而且對PHP和MySQL的Web應用做了較全面的闡述,並包括幾個經典且實用的例子。
       本書是第4版,經過了全面的更新、重寫和擴展,包括PHP 5.3最新改進的特性(例如,更好的錯誤和異常處理),MySQL的存儲過程和存儲引擎,Ajax技術與Web 2.0以及Web應用需要注意的安全問題。


【作者簡介】
       Laura Thomson是Mozilla公司的高級軟件工程師。之前,她是OmniTI公司和Tangled Web Design公司的合伙人。此外,Laura曾經在RMIT大學和波士頓顧問集團工作過。她獲得了應用科學(計算機科學)的學士學位和工程學(計算機系統工程)學士學位。在她的空閒時間,她非常喜歡騎馬,討論免費軟件和開源軟件以及睡覺。
       Luke Welling是OmniTI公司的一位Web架構師,他經常在一些國際會議(例如,OSCON, ZendCon, MySQLUC,HPCon,OSDC以及LinuxTag)中就開源和Web開發的話題發表演講。在加入OmniTI公司之前,他曾作為數據庫提供商的Web分析師為Hitwise.com公司工作。此外,他還是Tangled Web Design公司的獨立顧問。他還在澳大利亞墨爾本的RMIT大學教授計算機科學課程。他獲得了應用科學(計算機科學)的學士學位。在他的空閒時間,他希望治好他的失眠症。

【目錄】
讀者反饋
譯者序
前言
作者簡介
第一篇   使用PHP
第1章   PHP快速入門教程    1
1.1   開始之前:了解PHP 
1.2   創建一個示例應用:Bob汽車零部件商店    2
1.2.1   創建訂單表單    2
1.2.2   表單處理    4
1.3   在HTML中嵌入PHP    4
1.3.1   使用PHP標記    5
1.3.2   PHP語句    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.1 PHP的數據類型
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.1   if語句    28
1.14.2   代碼塊    28
1.14.3   else語句    28
1.14.4   elseif語句    29
1.14.5   switch語句    30
1.14.6   比較不同的條件    31
1.15   通過迭代實現重復動作    32
1.15.1   while循環    33
1.15.2   for和foreach循環    34
1.15.3   do...while循環    35
1.16   從控制結構或腳本中跳出    35
1.17   使用可替換的控制結構語法    36
1.18   使用declare    36
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.1   fwrite()的參數    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.2    RDBMS是如何解決這些問題的    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_file    101
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章   面向對象的PHP    115
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(反射)API    140
6.11   下一章    141
第7章  錯誤和 異常處理    142
7.1   異常處理的概念    142
7.2   Exception類    144
7.3   用戶自定義異常    144
7.4   Bob的汽車零部件商店應用程序的異常    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.3   Web數據庫架構    157
8.4   進一步學習    158
8.5   下一章    158
第9章   創建Web數據庫    159
9.1   使用MySQL監視程序    160
9.2   登錄到MySQL    160
9.3   創建數據庫和用戶    161
9.4   設置用戶與權限    162
9.5   MySQL權限系統的介紹    162
9.5.1   最少權限原則    162
9.5.2   創建用戶:GRANT命令    162
9.5.3   權限的類型和級別    163
9.5.4   REVOKE命令    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.1   SQL是什麼    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.1   Web數據庫架構的工作原理    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   使用常規的數據庫接口:PEAR MDB2     206
11.6   進一步學習    209
11.7   下一章    209
第12章   MySQL高級管理    210
12.1   深入理解權限系統    210
12.1.1   user表    211
12.1.2   db表和host表    212
12.1.3   tables_priv表,columns_priv表和procs_priv表    212
12.1.4   訪問控制:MySQL如何使用Grant表    213
12.1.5   更新權限:修改什麼時候生效    213
12.2   提高MySQL數據庫的安全性    214
12.2.1   從操作系統角度來保護MySQL    214
12.2.2   密碼    214
12.2.3   用戶權限    215
12.2.4   Web問題    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.1   LOAD DATA INFILE語句    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.5 Web服務器和PHP的安全性
16.5.1 保持軟件的更新
16.5.2 查看php.ini文件
16.5.3  Web服務器配置
16.5.4 Web應用的商業主機服務
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_mysql    276
17.6.2   使用mod_auth_mysql    277
17.7   創建自定義身份驗證    277
17.8   進一步學習    278
17.9   下一章    278
第18章   使用PHP和MySQL實現安全事務    279
18.1   提供安全的事務處理    279
18.1.1   用戶機器    280
18.1.2   Internet    281
18.1.3   我們的系統    281
18.2   使用加密套接字層(SSL)    282
18.3   屏蔽用戶的輸入    284
18.4   提供安全存儲    284
18.5   存儲信用卡號碼    285
18.6   在PHP中使用加密技術    286
18.6.1   安裝GPG    286
18.6.2   測試GPG    288
18.7   進一步學習    293
18.8   下一章    293
第四篇   PHP的高級技術
第19章   與文件系統和服務器的交互    295
19.1   文件上載    295
19.1.1   文件上載的HTML代碼    296
19.1.2   編寫處理文件的PHP    297
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.1   JPEG    334
22.2.2   PNG    334
22.2.3   WBMP    335
22.2.4   GIF    335
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   什麼是cookie    354
23.2.2   通過PHP設置cookie    355
23.2.3   在會話中使用cookie    355
23.2.4   存儲會話   ID    356
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和exit    367
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   在命令行中使用PHP    372
24.8   下一章    372
第五篇   創建實用的PHP和MySQL項目
第25章   在大型項目中使用PHP和MySQL    373
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.2 PHP對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的一個“Hello World”程序    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.2  XML的解析:REST響應
33.2.3   在PHP中使用SOAP    614
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構建Web 2.0應用
34.1 Ajax 是什麼?
34.1.1 HTTP請求和響應
34.1. 2 DHTML和XHTML
34.1.3 級聯樣式單(CSS)
34.1.4 客戶端編程
34.1.5 服務器端編程
34.1.6 XML和XSLT
34.2 Ajax基礎
34.2.1 XMLHTTPRequest對象
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.2 Ajax應用可用的JavaScript函數庫
34.4.3 Ajax開發人員網站

第六篇   附      錄
附錄A   安裝PHP及MySQL    645
附錄B   Web資源    664
第1章   PHP快速入門教程
第2章   數據的存儲與檢索
第3章   使用數組
第4章   字符串操作與正則表達式
第5章   代碼重用與函數編寫
第6章   面向對象的PHP
第7章   錯誤和異常處理

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved