PHP與MySQL動態(tài)網(wǎng)站開發(fā)

出版時間:2013-1  出版社:人民郵電出版社  作者:Larry Ullman  頁數(shù):638  字數(shù):1097000  譯者:杜 凱,陳宗斌  
Tag標簽:無  

前言

  今天的Web用戶期待更吸引人的頁面——它們會頻繁更新,并且提供個性化的體驗。在他們看來,Web站點更像是社區(qū),他們將一遍又一遍地回訪。同時,Web站點管理員希望站點更容易更新和維護,他們理解到這是能夠不斷滿足訪問者期望的唯一方式。由于如此種種原因,PHP和MySQL變成了創(chuàng)建動態(tài)的、數(shù)據(jù)庫驅(qū)動的Web站點的事實標準?! ”緯梢哉f是凝聚了我多年Web開發(fā)經(jīng)驗和多部Web開發(fā)技術(shù)圖書寫作經(jīng)驗的顛峰之作。本書重點在于以最高效的方式介紹最重要的知識。它將介紹如何開始開發(fā)動態(tài)Web站點,并給出了大量示例代碼來幫助讀者起步。你只需要滿懷熱忱地來學習就行了?! 『冒?,我們這就開始……  什么是動態(tài)Web站點  動態(tài)Web站點非常靈活、強大,將其描述為應用程序(application)而不僅僅是站點會更準確。動態(tài)Web站點的特征包括:  能夠?qū)Σ煌膮?shù)做出響應(例如,一天中的某個時間,或者訪問者的Web瀏覽器版本);  具有“記憶”,允許用戶執(zhí)行注冊、登錄、電子商務以及類似的過程;  通常包含HTML表單,使得人們可以執(zhí)行查找、提供反饋等;  通常具有允許管理員管理站點內(nèi)容的界面;  與靜態(tài)創(chuàng)建的站點相比,更易于維護、升級和構(gòu)建?! ∮性S多技術(shù)可用于創(chuàng)建動態(tài)Web站點。最常用的技術(shù)是ASP.NET、JSP(Java ServerPages)、ColdFusion、Ruby on Rails和PHP。動態(tài)Web站點不一定依賴數(shù)據(jù)庫,但是,越來越多的動態(tài)Web站點正在這樣做,何況還有MySQL這樣幾乎可以免費使用的數(shù)據(jù)庫?! ∈裁词荘HP  PHP最初代表“個人主頁”(Personal Home Page),由Rasmus Lerdorf于1994年創(chuàng)建,用于跟蹤訪問者對其在線履歷的訪問。隨著實用性和功能的不斷提高(并且也開始用于更專業(yè)的環(huán)境中),它變成了“PHP:Hypertext Preprocessor(PHP:超文本預處理器)”。  根據(jù)(參見圖0-1)上PHP官方站點的說法,PHP是“一種廣泛使用的通用腳本語言,特別適用于Web開發(fā),并且可以嵌入在HTML中”。這是一個復雜但具有描述性的定義,其含義將在后面解釋?! 》QPHP“可以嵌入在HTML中”,意味著在標準的HTML頁面中根據(jù)需要插入一些PHP代碼,就可以得到動態(tài)效果。因此PHP很適合網(wǎng)頁設(shè)計和制作者使用。  此外,與編譯語言相比,PHP是一種腳本語言:設(shè)計PHP的目的是用于編寫Web腳本,而不是編寫獨立的應用程序(當然,現(xiàn)在多費點勁也可以用PHP創(chuàng)建應用程序)。PHP腳本只在某個事件(例如,用戶提交一個表單或者輸入一個URL地址)發(fā)生之后才運行?! D0-1 PHP主頁  我應該在這個定義中添加一些內(nèi)容,指出PHP是一種服務器端、跨平臺的技術(shù),這兩個描述都是重要的。服務器端是指PHP做的所有事情都發(fā)生在服務器上。這需要Web服務器,像Apache或微軟公司的IIS(Internet Information Services,Internet信息服務),并且必須通過URL(以http://開始的網(wǎng)址)訪問所有PHP腳本。跨平臺的意思是,PHP可以運行在大多數(shù)操作系統(tǒng)上,包括Windows、UNIX(及其許多變體)和Macintosh。更重要的是,對于在一臺服務器上編寫的PHP腳本,通常不用修改或者只做很少的修改即可工作在另一臺服務器上?! HP6發(fā)生了什么·  當我撰寫本書的第3版時,PHP的下一個主要版本PHP 6已經(jīng)開發(fā)了將近一半兒了??紤]到PHP 6可能會在那一版出版后不久發(fā)布,我就在當中加入了一些PHP 6 beta版的內(nèi)容。但不幸的是,PHP 6夭折了?! HP 6最主要的新特性是將Unicode引入PHP引擎,這意味著PHP 6將可以處理世界上所有的語言字符了。這將使這個已經(jīng)非常受歡迎的編程語言錦上添花。不幸的是,實現(xiàn)對Unicode的支持十分復雜且難度很大,語言的開發(fā)者擱置了PHP 6的開發(fā)。然而不是所有的都取消了:PHP6計劃引入的一些新特性,比如命名空間(面向?qū)ο缶幊痰母拍睿?,就已添加到PHP 5.3版中?! ≡谧珜戇@一版時,何時實現(xiàn)Unicode支持尚不明朗,PHP 6的正式發(fā)布日期還未可知。我預感未來一段時間內(nèi)PHP將會沿著版本5的主干漸進發(fā)展。  在編寫本書的時候,PHP的最新是5.3.6版本,建議讀者使用PHP5.0以上的版本。本書中要用到的一些函數(shù)和特性需要運行在PHP 5.2及以上版本。當用到新版本中引入的功能時,我會為那些仍使用較低版本的讀者提供一些替代解決方案?! ∪绻闳匀贿€使用著PHP4,強烈建議升級到更高版本。如果你沒有這個計劃,那么請購買本書的第2版?! 「嚓P(guān)于PHP的信息,PHP核心背后的思想,可以隨時在PHP.net或者Zen上找到。  為什么使用PHP  簡單地講,在開發(fā)動態(tài)Web站點時,與其他可選技術(shù)相比,PHP更好、更快并且更易于學習。PHP有優(yōu)秀的性能、與幾乎所有數(shù)據(jù)庫的緊密集成、穩(wěn)定性、可移植性,以及由于其可擴展性而得到的幾乎無限的特性集。所有這些都是免費的(PHP是開源技術(shù)),并且非常易于學習。在我接觸的語言中,PHP是最佳地結(jié)合了易用性和高級能力的語言之一,初級程序員使用它很容易上手,更高級的程序員可以用它做他們需要的一切事情?! ∽詈螅粋€事實可以證明這一點:PHP自從推出以來,其用戶數(shù)量呈指數(shù)級增長,76%的網(wǎng)站都采用PHP作為其服務端技術(shù)(參見圖0-2)。在所有受歡迎的編程語言中,PHP排在第5位(參見圖0-3)。  圖0-2 Web Technology Surveys 網(wǎng)站提供的服務器端技術(shù)調(diào)查表  圖0-3 Tiobe Index  結(jié)合各種因素給出的流行的編程語言排名  當然,由于我是PHP圖書(實際上市面上有很多本這樣的圖書)的作者,你可能想當然地認為我的觀點有失公平。盡管我使用JSP、RoR(Ruby on Rails)和ASP.NET不像PHP那樣廣泛,但是也使用它們開發(fā)站點。它們都有自己的優(yōu)缺點,但是我總是會返回到PHP這種技術(shù)上來。你可能聽說它的性能和擴展性不如其他技術(shù),但是Yahoo!、維基百科、Facebook都使用PHP,比這幾個網(wǎng)站的訪問量多的網(wǎng)站可不多啊?! ∧阋部赡芟胫繮HP的安全性如何。但是安全性不在語言本身,而在于使用語言的方式。當然,本書將全面討論所有重要的安全性問題的最新內(nèi)容。  PHP如何工作  如前所述,PHP是一種服務器端語言。這意味著用PHP編寫的代碼將駐留在稱為服務器的主機上。服務器發(fā)送Web頁面給發(fā)出請求的訪問者(你、客戶端和Web瀏覽器)?! ‘斣L問者訪問用PHP編寫的Web站點時,服務器讀取PHP代碼,然后依據(jù)其腳本指令處理它。在圖0-4所示的示例中,PHP代碼告訴服務器發(fā)送合適的數(shù)據(jù)(HTML代碼)給Web瀏覽器,Web瀏覽器再把接收到的代碼處理成標準HTML頁面?! D0-4 當用戶請求Web頁面時,PHP如何在客戶/服務器模型中發(fā)揮作用  這不同于靜態(tài)HTML站點。在靜態(tài)HTML站點中,當發(fā)出請求時,服務器只是把HTML數(shù)據(jù)發(fā)送到Web瀏覽器,而不會由服務器端進行解釋(參見圖0-5)。由于不需要服務器端的動作,所以可以在Web瀏覽器中運行HTML頁面,而根本不需要使用服務器?! D0-5 當對靜態(tài)HTML頁面發(fā)出請求時客戶/服務器的處理過程  對于最終用戶和Web瀏覽器來說,home.html和home.php兩者在外觀上并沒有明顯的區(qū)別,但是,其頁面內(nèi)容的創(chuàng)建方式卻有著天壤之別?! ∈裁词荕ySQL  MySQL(參見圖0-6)是世界上最流行的開源數(shù)據(jù)庫。事實上,今天MySQL成為了那些昂貴的重量級數(shù)據(jù)庫(如Oracle和微軟公司的SQL Server)有力的競爭產(chǎn)品。像PHP一樣,MySQL提供了優(yōu)秀的性能、可移植性和可靠性,易于學習,并且?guī)缀跏敲赓M的。  圖0-6 MySQL數(shù)據(jù)庫應用程序的主頁  發(fā)音指南  雖然只是小節(jié),但我仍要預先說明:MySQL應該讀作“My Ess Que Ell”,就像SQL應該讀作“Ess Que Ell”一樣。許多人最初都會對此產(chǎn)生疑問,雖然這并不是什么大問題,但是,學會正確地讀縮寫詞總是好事?! ySQL是一種關(guān)系數(shù)據(jù)庫管理系統(tǒng)(DBMS,Database Management System)。簡單地講,數(shù)據(jù)庫是一些相關(guān)數(shù)據(jù)的集合,這些數(shù)據(jù)可以是文本、數(shù)字或二進制文件,它們由DBMS進行存儲和組織。  數(shù)據(jù)庫有多種類型,從簡單的平面文件到關(guān)系數(shù)據(jù)庫和面向?qū)ο髷?shù)據(jù)庫。關(guān)系數(shù)據(jù)庫的特征是使用多張表存儲信息。雖然關(guān)系數(shù)據(jù)庫在設(shè)計和編程階段需要做更多工作,但它們提高了可靠性和數(shù)據(jù)完整性,抵消不足綽綽有余。此外,關(guān)系數(shù)據(jù)庫的查找能力更強,并且允許并發(fā)操作?! ⊥ㄟ^把數(shù)據(jù)庫納入Web應用程序中, PHP生成的數(shù)據(jù)可以從MySQL提取(參見圖0-7)。這進一步把站點的內(nèi)容從靜態(tài)(硬編碼)轉(zhuǎn)為靈活,靈活性對動態(tài)Web站點可是至關(guān)重要的?! D0-7 本書中大多數(shù)動態(tài)Web應用程序的工作方式:同時使用PHP和MySQL  與PHP一樣,MySQL也是一種開源應用程序,這意味著它可以免費使用,甚至可以修改(源代碼可下載得到)。有些情況下需要付費獲得MySQL許可證,特別是在銷售或打包使用MySQL產(chǎn)品來贏利時則更應如此。查看MySQL的許可政策,可以獲取這方面的詳細信息?! ySQL軟件包含多個部分,包括MySQL服務器(mysqld,它運行和管理數(shù)據(jù)庫)、MySQL客戶(mysql,它提供了一個訪問服務器的接口),以及出于維護等目的而提供的大量實用程序。PHP對MySQL的支持一直很好,在PHP的最新版本中,這一點表現(xiàn)得更為突出?! ySQL以處理大型數(shù)據(jù)庫而著稱,數(shù)據(jù)庫可以包含60 000張表,以及超過50億行的記錄。在某些操作系統(tǒng)上,MySQL可以處理容量高達800萬TB的表,在其他操作系統(tǒng)上,一般可以正常地處理4 GB的數(shù)據(jù)。MySQL已被NASA、美國人口普查局(United States Census Bureau)以及許多其他機構(gòu)采用?! ≡诰帉懕緯鴷r,MySQL已經(jīng)推出了版本5.5.13,并且版本5.6和版本6.0正在開發(fā)中。因為不同的MySQL版本有不同的特性,所以要清楚地知道你自己正在使用什么版本就非常重要了。本書使用的是MySQL 5.1.44和5.5.8,盡管只要使用MySQL 5.0以上版本就應該能夠完成本書中的任何事情?! ∧阈枰裁础 ∫斫獗緯氖纠?,你需要以下工具:  Web服務器應用程序(例如,Apache、Abyss或IIS);  PHP;  MySQL;  Web瀏覽器(微軟公司的IE、Mozilla的Firefox、Apple的Safari、Google的Chrome等);  文本編輯器、支持PHP的所見即所得的應用程序(Adobe的Dreamweaver就具有這種能力)或者IDE(Intergrated Development Environment,集成開發(fā)環(huán)境);  FTP應用程序(如果使用遠程服務器)。  利用PHP和MySQL開發(fā)動態(tài)Web站點的一大優(yōu)點是,無論什么要求都可以免費得到滿足,而不管使用的操作系統(tǒng)是什么!Apache、PHP和MySQL全都是免費的,大多數(shù)Web瀏覽器可以免費擁有,許多優(yōu)秀的文本編輯器可供免費使用。  本書附錄(可以從本書的支持網(wǎng)站http://www.peachpit.com下載)討論了在Windows和Mac OS X操作系統(tǒng)上的安裝過程。如果有一臺計算機,那么只需下載兩個產(chǎn)品即可創(chuàng)建動態(tài)Web站點(在這種情況下,你的計算機同時代表圖0-4和圖0-5中的客戶端和服務器)。另外,你還可以以每月幾美元的價錢購買Web虛擬主機服務,它會提供支持PHP和MySQL的已經(jīng)在線的環(huán)境?! £P(guān)于本書  本書講述了如何利用PHP和MySQL來開發(fā)動態(tài)Web站點,涵蓋了大多數(shù)開發(fā)人員可能需要的知識。為了與Visual QuickPro系列圖書的格式保持一致,本書中使用逐步引導、圖文并茂的方式來討論。其重點依然放在實戰(zhàn)性很強的示例上,而不像有些書那樣,老是說什么“這些事情你能夠做到但是永遠也不要去做”。我自己就是一名Web開發(fā)人員,書里寫的都是我會用到的信息,并且避免了那些對手邊的任務來說無關(guān)緊要的東西。而作為一名老作者,我肯定會包括讀者想知道的主題和技術(shù)?! ”緯捎昧搜驖u進的結(jié)構(gòu)。前3章介紹了PHP的基礎(chǔ)知識(通過學習第2章,你就會開發(fā)你的第一個動態(tài)Web頁面)。之后,第4~7章介紹了SQL(Structured Query Language,結(jié)構(gòu)化查詢語言,用于和所有數(shù)據(jù)庫進行交互)和MySQL。它們介紹了SQL和數(shù)據(jù)庫設(shè)計的基礎(chǔ)知識,并且特別介紹了MySQL應用程序。然后,第8章介紹了調(diào)試和錯誤管理,這些是每個人都需要的信息。第9章專門介紹了如何結(jié)合使用PHP和MySQL,這非常容易做到?! 〉?0~14章講述了更多的應用技術(shù),可以充實你的知識。特別是,這幾章中反復介紹了安全方面的內(nèi)容。第15章和第16章是本書這一版中的全新內(nèi)容,介紹了一些新技術(shù)。最后,本書包含了專門介紹示例的3章內(nèi)容,其中開發(fā)了幾類Web應用程序的核心,并穿插了許多說明?! ”緯x者對象  本書讀者面很廣,從初學者到中級用戶都可以學習本書??紤]將來的兼容性問題,本書使用了XHTML,因此讀者必須具有使用XHTML或其前身HTML的豐富經(jīng)驗。盡管本書涵蓋了很多方面,但它沒有正式講述HTML或Web頁面設(shè)計。這些頁面少量使用了一些CSS,但是這里沒有講授它?! ∑浯?,本書希望讀者具有以下素質(zhì)之一:  學習的動力和能力,而不需要被人牽著鼻子走;  熟悉另一種編程語言(具備豐富的JavaScript知識也足夠了);  對PHP有一定的了解。  本書涵蓋了PHP和MySQL方方面面的內(nèi)容,講述了開發(fā)現(xiàn)實的Web站點需要知道的一切知識,不過,要特別指出的是,開頭幾章以較快的速度介紹了PHP。出于這種原因,我建議在開始學習新內(nèi)容時,最好具備一些編程經(jīng)驗或者好奇和獨立的精神。如果你發(fā)現(xiàn)有些內(nèi)容講得太快,那么從學習我的PHP for the World Wide Web: Visual QuickStart Guide的最新版本 開始起步可能更好,其中的行文速度更適中?! W習本書不需要任何數(shù)據(jù)庫經(jīng)驗,因為本書是從最基本的級別開始討論SQL和MySQL的?! ∵@一版本的新增內(nèi)容  本書的前3個版本非常受歡迎,我收到了許多肯定的反饋意見(感謝?。?。在編寫此新版本時,我希望不僅僅是更新PHP和MySQL最新版本的內(nèi)容,盡管這是全書的首要考慮事項。你將會發(fā)現(xiàn)其他新特性:  用新的示例演示讀者迫切需要了解的技術(shù);  另外一些高級MySQL和SQL示例;  jQuery JavaScript框架使用手冊;  介紹面向?qū)ο缶幊袒A(chǔ)知識和基本語法;  提升腳本和網(wǎng)頁安全性的更多信息和示例;  用一整章的篇幅專門介紹如何阻止常見的Web站點濫用和攻擊;  用全新的一章介紹使用多種語言和時區(qū);  用全新的一章示例介紹創(chuàng)建消息板(也稱論壇);  擴展和更新了安裝和配置指導;  刪除了過時的內(nèi)容(例如,PHP的老版本中使用的特性或者不適用的特性)?! ∵@一版在每一章的末尾新加入“回顧和實踐”小節(jié)。該小節(jié)的目的是回顧那一章介紹的主要內(nèi)容,給出一些練習,并以所學內(nèi)容為基礎(chǔ)進一步擴展相關(guān)知識?! τ谫I過本書前幾版的讀者(多謝啊),我相信這些新特性也會使這一版本成為你的案頭必備?! ∨c我的其他圖書的比較  這是我編寫的第四本關(guān)于PHP和/或MySQL主題的圖書,下面按順序列出之前出版的另外3本書:  PHP for the World Wide Web: Visual QuickStart Guide  PHP 5 Advanced for the World Wide Web: Visual QuickPro Guide  MySQL: Visual QuickStart Guide  我希望這份履歷暗示了我具有某種資格來編寫本書,但是,作為讀者,你該如何選擇呢?當然,我非常歡迎你慷慨地購買全套書,對你的這種做法,我會致以無盡的謝意,但是,如果你不得不從中選擇一本書……  PHP for the World Wide Web: Visual QuickStart Guide一書非常適合作為PHP的初學者指南。它與本書有一些重疊,大部分出現(xiàn)在前3章中,但是使用了新的示例,因此讀者并不會覺得多余。對于初學者,可以在閱讀那本書后再閱讀本書。肯定應該在閱讀了本書之后再閱讀PHP 5 Advanced for the World Wide Web: Visual QuickPro Guide一書,因為它假定讀者具有相當多的知識并且是在這里介紹的許多內(nèi)容的基礎(chǔ)上編寫的。MySQL: Visual QuickStart Guide一書重點關(guān)注的幾乎都是MySQL獨有的內(nèi)容(只有兩章使用了PHP)?! ≡谟涀∵@些后,閱讀“本書讀者對象”一節(jié)的內(nèi)容,并看看其中的要求是否適合你自己。如果你根本沒有任何編程經(jīng)驗,并且更希望得到更細致的引導,那么我的第一本書可能更適合你。如果你已經(jīng)對使用PHP感到得心應手,并且想學習它的更多高級功能,可選擇第二本書。如果你最感興趣的是MySQL,并且不怎么熱衷于學習關(guān)于PHP的大量知識,那么可以購買第三本書。  如前所述,如果你想學習今天利用PHP和MySQL開始開發(fā)動態(tài)Web站點所需要知道的一切知識,那么本書就適合你!它涵蓋了這兩種技術(shù)的最新版本,使用了其他圖書中以前未討論的技術(shù),并且包含了獨具特色的示例?! o論你選擇哪一本書,都要選擇最新版本,或者與你將使用的技術(shù)最匹配的版本?! ∨涮拙W(wǎng)站  我專門為本書開發(fā)了一個配套網(wǎng)站。 在這里,你將找到本書中的每一個腳本、包含冗長的SQL命令的文本文件以及勘誤表(如果你有關(guān)于命令或腳本方面的問題,并且正好在學習本書,請檢查勘誤表以確保沒有印刷錯誤)。在該網(wǎng)站上,你還會發(fā)現(xiàn)有用的Web鏈接以及一個非常受歡迎的論壇,讀者可以在里面相互問問題并進行解答(我自己解答了其中許多問題),等等?! 栴}、評論或建議  如果你有關(guān)于PHP或MySQL的任何問題,應該求助于現(xiàn)有的許多網(wǎng)站、郵件列表、新聞組和FAQ倉庫。搜索引擎可以找到幾乎無限的資源。如果你需要得到即時解答,這些資源或搜索引擎可以基本滿足你的需要(十有八九已經(jīng)有人遇到并解決了你的問題)。  你也可以直接把你的問題、評論和建議發(fā)送給我。你可以使用本書的相應論壇得到最快的答復(我總是優(yōu)先解答這些問題)。如果你更喜歡給我發(fā)送電子郵件,網(wǎng)站上提供了我的聯(lián)系方式。盡管我不能保證會迅速給出回復,但我會盡力答復收到的每封電子郵件?! 〕霭嫔缣崾荆翰榭醋髡週arry Ullman隨附的教學視頻  可視化快速入門教程(Visual QuickStart Guides)現(xiàn)在更加“直觀”: 由于Visual QuickStart Guides系列書籍非常暢銷,Peachpit出版社提供了1個多小時的任務試教學視頻,可以幫助你快速掌握關(guān)鍵的特性和技術(shù)。你可以一邊閱讀書中的PHP和MySQL腳本,一邊看實戰(zhàn)視頻。這是一種非常理想的學習基礎(chǔ)知識和新的、更復雜的特性的方式。請訪問Peachpit網(wǎng)站,你就可以看到一些免費的視頻,也可以很方便地購買其他視頻。

內(nèi)容概要

  《PHP與MySQL動態(tài)網(wǎng)站開發(fā)(第4版)》采用基于任務的方法來講授PHP和MySQL,使用大量圖片指導讀者深入學習語言,并向讀者展示了如何構(gòu)造Web站點。用簡潔、直觀的步驟和講解提供了學習任務和概念的最快方式。通過《PHP與MySQL動態(tài)網(wǎng)站開發(fā)(第4版)》,讀者可以快速、高效地學習PHP和MySQL,并可以立刻成為一位構(gòu)建Web站點的高手!
《PHP與MySQL動態(tài)網(wǎng)站開發(fā)(第4版)》適用于Web應用開發(fā)人員,適合初、中層次讀者。

作者簡介

  Larry Ullman
作家、Web和軟件開發(fā)人員、培訓師、教師、演說家和顧問。他已經(jīng)著有20多本技術(shù)書籍。Larry最深受讀者喜愛的一點在于,他往往可以將晦澀難懂的專業(yè)術(shù)語轉(zhuǎn)換為大家耳熟能詳?shù)淖匀徽Z言。更多信息可訪問他的網(wǎng)站:www.LarryUllman.com。

書籍目錄

第1章 PHP概述 
1.1 基本語法 
1.2 發(fā)送數(shù)據(jù)到Web瀏覽器 
1.3 編寫注釋 
1.4 什么是變量 
1.5 介紹字符串 
1.6 連接字符串 
1.7 數(shù)字介紹 
1.8 常量介紹 
1.9 單引號與雙引號 
1.10 基本的調(diào)試步驟 
1.11 回顧和實踐 
1.11.1 回顧 
1.11.2 實踐 
第2章 PHP編程 
2.1 創(chuàng)建HTML表單 
2.2 處理HTML表單 
2.3 條件語句和運算符 
2.4 驗證表單數(shù)據(jù) 
2.5 介紹數(shù)組 
2.5.1 創(chuàng)建數(shù)組 
2.5.2 訪問數(shù)組 
2.5.3 多維數(shù)組 
2.5.4 數(shù)組排序 
2.6 for和while循環(huán) 
2.7 回顧和實踐 
2.7.1 回顧 
2.7.2 實踐 
第3章 創(chuàng)建動態(tài)Web站點 
3.1 包含多個文件 
3.2 再論處理HTML表單 
3.3 建立黏性表單 
3.4 創(chuàng)建自己的函數(shù) 
3.4.1 創(chuàng)建帶參數(shù)的函數(shù) 
3.4.2 設(shè)置默認的參數(shù)值 
3.4.3 從函數(shù)返回值 
3.7 回顧和實踐 
3.7.1 回顧 
3.7.2 實踐 
第4章 MySQL簡介 
4.1 命名數(shù)據(jù)庫元素 
4.2 選擇列類型 
4.3 選擇其他的列屬性 
4.4 訪問MySQL 
4.4.1 使用MySQL客戶端 
4.4.2 使用phpMyAdmin 
4.5 回顧和實踐 
4.5.1 回顧 
4.5.2 實踐 
第5章 SQL簡介 
5.1 創(chuàng)建數(shù)據(jù)庫和表 
5.2 插入記錄 
5.3 選擇數(shù)據(jù) 
5.4 使用條件語句 
5.5 使用LIKE和NOT LIKE 
5.6 排序查詢結(jié)果 
5.7 限制查詢結(jié)果 
5.8 更新數(shù)據(jù) 
5.9 刪除數(shù)據(jù) 
5.10 使用函數(shù) 
5.10.1 文本函數(shù) 
5.10.2 數(shù)字函數(shù) 
5.10.3 日期和時間函數(shù) 
5.10.4 格式化日期和時間 
5.11 回顧和實踐 
5.11.1 回顧 
5.11.2 實踐 
第6章 數(shù)據(jù)庫設(shè)計 
6.1 規(guī)范化 
6.1.1 鍵 
6.1.2 關(guān)系 
6.1.3 第一范式 
6.1.4 第二范式 
6.1.5 第三范式 
6.1.6 審查設(shè)計 
6.2 創(chuàng)建索引 
6.3 使用不同的表類型 
6.4 語言和MySQL 
6.5 時區(qū)和MySQL 
6.6 外鍵約束 
6.7 回顧和實踐 
6.7.1 回顧 
6.7.2 實踐 
第7章 高級SQL和MySQL 
7.1 執(zhí)行聯(lián)結(jié) 
7.1.1 內(nèi)聯(lián)結(jié) 
7.1.2 外聯(lián)結(jié) 
7.1.3 聯(lián)結(jié)三個或更多表 
7.2 分組選定的結(jié)果 
7.3 高級選擇 
7.4 執(zhí)行FULLTEXT查找 
7.4.1 創(chuàng)建FULLTEXT索引 
7.4.2 執(zhí)行基本的FULLTEXT查找 
7.4.3 執(zhí)行布爾型FULLTEXT查找 
7.5 查詢優(yōu)化 
7.6 執(zhí)行事務 
7.7 數(shù)據(jù)庫加密 
7.8 回顧和實踐 
7.8.1 回顧 
7.8.2 實踐 
第8章 錯誤處理和調(diào)試 
8.1 錯誤類型與基本調(diào)試方法 
8.1.1 基本調(diào)試步驟 
8.1.2 調(diào)試HTML 
8.2 顯示PHP錯誤 
8.3 調(diào)整PHP中的錯誤報告 
8.4 創(chuàng)建自定義的錯誤處理程序 
8.5 PHP調(diào)試技術(shù) 
8.6 SQL和MySQL調(diào)試技術(shù) 
8.6.1 調(diào)試SQL問題 
8.6.2 調(diào)試訪問問題 
8.7 回顧和實踐 
8.7.1 回顧 
8.7.2 實踐 
第9章 使用PHP和MySQL 
9.1 修改模板 
9.2 連接到MySQL 
9.3 執(zhí)行簡單的查詢 
9.4 檢索查詢結(jié)果 
9.5 確保SQL安全 
9.6 統(tǒng)計返回的記錄 
9.7 利用PHP更新記錄 
9.8 回顧和實踐 
9.8.1 回顧 
9.8.2 實踐 
第10章 常用編程技術(shù) 
10.1 給腳本發(fā)送值 
10.2 使用隱藏的表單輸入框 
10.3 編輯現(xiàn)有的記錄 
10.4 給查詢結(jié)果標頁碼 
10.5 建立可排序的顯示結(jié)果 
10.6 回顧和實踐 
10.6.1 回顧 
10.6.2 實踐 
第11章 Web應用程序開發(fā) 
11.1 發(fā)送電子郵件 
11.2 處理文件上傳 
11.2.1 允許文件上傳 
11.2.2 利用PHP上傳文件 
11.3 PHP和JavaScript 
11.3.1 創(chuàng)建JavaScript文件 
11.3.2 創(chuàng)建PHP腳本 
11.4 理解HTTP頭部 
11.5 日期和時間函數(shù) 
11.6 回顧和實踐 
11.6.1 回顧 
11.6.2 實踐 
第12章 cookie和會話 
12.1 建立登錄頁面 
12.2 創(chuàng)建登錄函數(shù) 
12.3 使用cookie 
12.3.1 設(shè)置cookie 
12.3.2 訪問cookie 
12.3.3 設(shè)置cookie參數(shù) 
12.3.4 刪除cookie 
12.4 使用會話 
12.4.1 設(shè)置會話變量 
12.4.2 訪問會話變量 
12.4.3 刪除會話變量 
12.5 提高會話安全性 
12.6 回顧和實踐 
12.6.1 回顧 
12.6.2 實踐 
第13章 安全性方法 
13.1 阻止垃圾郵件 
13.2 通過類型驗證數(shù)據(jù) 
13.3 按類型驗證文件 
13.4 阻止XSS攻擊 
13.5 使用過濾器擴展 
13.6 預防SQL注入攻擊 
13.7 回顧和實踐 
13.7.1 回顧 
13.7.2 實踐 
第14章 Perl兼容的正則表達式 
14.1 創(chuàng)建測試腳本 
14.2 定義簡單的模式 
14.3 使用量詞 
14.4 使用字符類別 
14.5 查找所有匹配 
14.6 使用修飾符 
14.7 匹配和替換模式 
14.8 回顧和實踐 
14.8.1 回顧 
14.8.2 實踐 
第15章 jQuery簡介 
15.1 jQuery是什么 
15.2 包含jQuery 
15.3 使用jQuery 
15.4 選擇頁面元素 
15.5 事件處理 
15.6 DOM操作 
15.7 使用Ajax 
15.7.1 創(chuàng)建表單 
15.7.2 創(chuàng)建服務器端腳本 
15.7.3 處理Ajax請求 
15.7.4 創(chuàng)建JavaScript 
15.8 回顧和實踐 
15.8.1 回顧 
15.8.2 實踐 
第16章 面向?qū)ο缶幊倘腴T 
16.1 基礎(chǔ)知識和語法 
16.1.1 面向?qū)ο蟮幕A(chǔ) 
16.1.2 PHP中的OOP語法 
16.2 使用MySQL 
16.2.1 創(chuàng)建連接 
16.2.2 執(zhí)行簡單的查詢 
16.2.3 獲取結(jié)果 
16.2.4 預處理語句 
16.3 DateTime類 
16.4 回顧和實踐 
16.4.1 回顧 
16.4.2 實踐 
第17章 示例——論壇 
17.1 建立數(shù)據(jù)庫 
17.2 編寫模板 
17.3 創(chuàng)建索引頁面 
17.4 創(chuàng)建論壇頁面 
17.5 創(chuàng)建論點頁面 
17.6 發(fā)布消息 
17.6.1 創(chuàng)建表單 
17.6.2 處理表單 
17.7 回顧和實踐 
17.7.1 回顧 
17.7.2 實踐 
第18章 示例——用戶注冊 
18.1 創(chuàng)建模板 
18.2 編寫配置腳本 
18.2.1 建立配置文件 
18.2.2 建立數(shù)據(jù)庫腳本 
18.3 創(chuàng)建主頁 
18.4 注冊 
18.5 激活賬戶 
18.6 登錄和注銷 
18.7 密碼管理 
18.7.1 重置密碼 
18.7.2 更改密碼 
18.8 回顧和實踐 
18.8.1 回顧 
18.8.2 實踐 
第19章 示例——電子商務 
19.1 創(chuàng)建數(shù)據(jù)庫 
19.2 管理端 
19.2.1 添加藝術(shù)家 
19.2.2 添加印刷品 
19.3 創(chuàng)建公共模板 
19.4 產(chǎn)品目錄 
19.5 購物車 
19.5.1 添加項目 
19.5.2 查看購物車 
19.6 記錄訂單 
19.7 回顧和實踐 
19.7.1 回顧 
19.7.2 實踐

章節(jié)摘錄

 今天的Web用戶期待更吸引人的頁面——它們會頻繁更新,并且提供個性化的體驗。在他們看來,Web站點更像是社區(qū),他們將一遍又一遍地回訪。同時,Web站點管理員希望站點更容易更新和維護,他們理解到這是能夠不斷滿足訪問者期望的唯一方式。由于如此種種原因,PHP和MySQL變成了創(chuàng)建動態(tài)的、數(shù)據(jù)庫驅(qū)動的Web站點的事實標準。 本書可以說是凝聚了我多年Web開發(fā)經(jīng)驗和多部Web開發(fā)技術(shù)圖書寫作經(jīng)驗的顛峰之作。本書重點在于以最高效的方式介紹最重要的知識。它將介紹如何開始開發(fā)動態(tài)Web站點,并給出了大量示例代碼來幫助讀者起步。你只需要滿懷熱忱地來學習就行了。 好吧,我們這就開始…… 什么是動態(tài)Web站點 動態(tài)Web站點非常靈活、強大,將其描述為應用程序(application)而不僅僅是站點會更準確。動態(tài)Web站點的特征包括: 能夠?qū)Σ煌膮?shù)做出響應(例如,一天中的某個時間,或者訪問者的Web瀏覽器版本); 具有“記憶”,允許用戶執(zhí)行注冊、登錄、電子商務以及類似的過程; 通常包含HTML表單,使得人們可以執(zhí)行查找、提供反饋等; 通常具有允許管理員管理站點內(nèi)容的界面; 與靜態(tài)創(chuàng)建的站點相比,更易于維護、升級和構(gòu)建。 有許多技術(shù)可用于創(chuàng)建動態(tài)Web站點。最常用的技術(shù)是ASP.NET、JSP(Java ServerPages)、ColdFusion、Ruby on Rails和PHP。動態(tài)Web站點不一定依賴數(shù)據(jù)庫,但是,越來越多的動態(tài)Web站點正在這樣做,何況還有MySQL這樣幾乎可以免費使用的數(shù)據(jù)庫。 什么是PHP PHP最初代表“個人主頁”(Personal Home Page),由Rasmus Lerdorf于1994年創(chuàng)建,用于跟蹤訪問者對其在線履歷的訪問。隨著實用性和功能的不斷提高(并且也開始用于更專業(yè)的環(huán)境中),它變成了“PHP:Hypertext Preprocessor(PHP:超文本預處理器)”。 根據(jù)www.php.net(參見圖0-1)上PHP官方站點的說法,PHP是“一種廣泛使用的通用腳本語言,特別適用于Web開發(fā),并且可以嵌入在HTML中”。這是一個復雜但具有描述性的定義,其含義將在后面解釋。 稱PHP“可以嵌入在HTML中”,意味著在標準的HTML頁面中根據(jù)需要插入一些PHP代碼,就可以得到動態(tài)效果。因此PHP很適合網(wǎng)頁設(shè)計和制作者使用。 此外,與編譯語言相比,PHP是一種腳本語言:設(shè)計PHP的目的是用于編寫Web腳本,而不是編寫獨立的應用程序(當然,現(xiàn)在多費點勁也可以用PHP創(chuàng)建應用程序)。PHP腳本只在某個事件(例如,用戶提交一個表單或者輸入一個URL地址)發(fā)生之后才運行。  圖0-1 PHP主頁 我應該在這個定義中添加一些內(nèi)容,指出PHP是一種服務器端、跨平臺的技術(shù),這兩個描述都是重要的。服務器端是指PHP做的所有事情都發(fā)生在服務器上。這需要Web服務器,像Apache或微軟公司的IIS(Internet Information Services,Internet信息服務),并且必須通過URL(以http:\/\/開始的網(wǎng)址)訪問所有PHP腳本??缙脚_的意思是,PHP可以運行在大多數(shù)操作系統(tǒng)上,包括Windows、UNIX(及其許多變體)和Macintosh。更重要的是,對于在一臺服務器上編寫的PHP腳本,通常不用修改或者只做很少的修改即可工作在另一臺服務器上。 PHP6發(fā)生了什么? 當我撰寫本書的第3版時,PHP的下一個主要版本PHP 6已經(jīng)開發(fā)了將近一半兒了??紤]到PHP 6可能會在那一版出版后不久發(fā)布,我就在當中加入了一些PHP 6 beta版的內(nèi)容。但不幸的是,PHP 6夭折了。 PHP 6最主要的新特性是將Unicode引入PHP引擎,這意味著PHP 6將可以處理世界上所有的語言字符了。這將使這個已經(jīng)非常受歡迎的編程語言錦上添花。不幸的是,實現(xiàn)對Unicode的支持十分復雜且難度很大,語言的開發(fā)者擱置了PHP 6的開發(fā)。然而不是所有的都取消了:PHP6計劃引入的一些新特性,比如命名空間(面向?qū)ο缶幊痰母拍睿鸵烟砑拥絇HP 5.3版中。 在撰寫這一版時,何時實現(xiàn)Unicode支持尚不明朗,PHP 6的正式發(fā)布日期還未可知。我預感未來一段時間內(nèi)PHP將會沿著版本5的主干漸進發(fā)展。 在編寫本書的時候,PHP的最新是5.3.6版本,建議讀者使用PHP5.0以上的版本。本書中要用到的一些函數(shù)和特性需要運行在PHP 5.2及以上版本。當用到新版本中引入的功能時,我會為那些仍使用較低版本的讀者提供一些替代解決方案。 如果你仍然還使用著PHP4,強烈建議升級到更高版本。如果你沒有這個計劃,那么請購買本書的第2版。 更多關(guān)于PHP的信息,PHP核心背后的思想,可以隨時在PHP.net或者Zend(www.zend.com)上找到。 為什么使用PHP 簡單地講,在開發(fā)動態(tài)Web站點時,與其他可選技術(shù)相比,PHP更好、更快并且更易于學習。PHP有優(yōu)秀的性能、與幾乎所有數(shù)據(jù)庫的緊密集成、穩(wěn)定性、可移植性,以及由于其可擴展性而得到的幾乎無限的特性集。所有這些都是免費的(PHP是開源技術(shù)),并且非常易于學習。在我接觸的語言中,PHP是最佳地結(jié)合了易用性和高級能力的語言之一,初級程序員使用它很容易上手,更高級的程序員可以用它做他們需要的一切事情。 最后,一個事實可以證明這一點:PHP自從推出以來,其用戶數(shù)量呈指數(shù)級增長,76%的網(wǎng)站都采用PHP作為其服務端技術(shù)(參見圖0-2)。在所有受歡迎的編程語言中,PHP排在第5位(參見圖0-3)。  圖0-2 Web Technology Surveys 網(wǎng)站提供的服務器端技術(shù)調(diào)查表(www.w3techs.com\/technologies\/overview\/programming_language\/all)  圖0-3 Tiobe Index(http:\/\/www.tiobe.com\/index.php\/content\/paperinfo\/tpci\/index.html) 結(jié)合各種因素給出的流行的編程語言排名 當然,由于我是PHP圖書(實際上市面上有很多本這樣的圖書)的作者,你可能想當然地認為我的觀點有失公平。盡管我使用JSP、RoR(Ruby on Rails)和ASP.NET不像PHP那樣廣泛,但是也使用它們開發(fā)站點。它們都有自己的優(yōu)缺點,但是我總是會返回到PHP這種技術(shù)上來。你可能聽說它的性能和擴展性不如其他技術(shù),但是Yahoo!、維基百科、Facebook都使用PHP,比這幾個網(wǎng)站的訪問量多的網(wǎng)站可不多啊。 你也可能想知道PHP的安全性如何。但是安全性不在語言本身,而在于使用語言的方式。當然,本書將全面討論所有重要的安全性問題的最新內(nèi)容。 PHP如何工作 如前所述,PHP是一種服務器端語言。這意味著用PHP編寫的代碼將駐留在稱為服務器的主機上。服務器發(fā)送Web頁面給發(fā)出請求的訪問者(你、客戶端和Web瀏覽器)。 當訪問者訪問用PHP編寫的Web站點時,服務器讀取PHP代碼,然后依據(jù)其腳本指令處理它。在圖0-4所示的示例中,PHP代碼告訴服務器發(fā)送合適的數(shù)據(jù)(HTML代碼)給Web瀏覽器,Web瀏覽器再把接收到的代碼處理成標準HTML頁面。  圖0-4 當用戶請求Web頁面時,PHP如何在客戶\/服務器模型中發(fā)揮作用 這不同于靜態(tài)HTML站點。在靜態(tài)HTML站點中,當發(fā)出請求時,服務器只是把HTML數(shù)據(jù)發(fā)送到Web瀏覽器,而不會由服務器端進行解釋(參見圖0-5)。由于不需要服務器端的動作,所以可以在Web瀏覽器中運行HTML頁面,而根本不需要使用服務器。  圖0-5 當對靜態(tài)HTML頁面發(fā)出請求時客戶\/服務器的處理過程 對于最終用戶和Web瀏覽器來說,home.html和home.php兩者在外觀上并沒有明顯的區(qū)別,但是,其頁面內(nèi)容的創(chuàng)建方式卻有著天壤之別。 什么是MySQL MySQL(www.mysql.com,參見圖0-6)是世界上最流行的開源數(shù)據(jù)庫。事實上,今天MySQL成為了那些昂貴的重量級數(shù)據(jù)庫(如Oracle和微軟公司的SQL Server)有力的競爭產(chǎn)品。像PHP一樣,MySQL提供了優(yōu)秀的性能、可移植性和可靠性,易于學習,并且?guī)缀跏敲赓M的。  圖0-6 MySQL數(shù)據(jù)庫應用程序的主頁 發(fā)音指南 雖然只是小節(jié),但我仍要預先說明:MySQL應該讀作“My Ess Que Ell”,就像SQL應該讀作“Ess Que Ell”一樣。許多人最初都會對此產(chǎn)生疑問,雖然這并不是什么大問題,但是,學會正確地讀縮寫詞總是好事。 MySQL是一種關(guān)系數(shù)據(jù)庫管理系統(tǒng)(DBMS,Database Management System)。簡單地講,數(shù)據(jù)庫是一些相關(guān)數(shù)據(jù)的集合,這些數(shù)據(jù)可以是文本、數(shù)字或二進制文件,它們由DBMS進行存儲和組織。 數(shù)據(jù)庫有多種類型,從簡單的平面文件到關(guān)系數(shù)據(jù)庫和面向?qū)ο髷?shù)據(jù)庫。關(guān)系數(shù)據(jù)庫的特征是使用多張表存儲信息。雖然關(guān)系數(shù)據(jù)庫在設(shè)計和編程階段需要做更多工作,但它們提高了可靠性和數(shù)據(jù)完整性,抵消不足綽綽有余。此外,關(guān)系數(shù)據(jù)庫的查找能力更強,并且允許并發(fā)操作。 通過把數(shù)據(jù)庫納入Web應用程序中, PHP生成的數(shù)據(jù)可以從MySQL提取(參見圖0-7)。這進一步把站點的內(nèi)容從靜態(tài)(硬編碼)轉(zhuǎn)為靈活,靈活性對動態(tài)Web站點可是至關(guān)重要的。  圖0-7 本書中大多數(shù)動態(tài)Web應用程序的工作方式:同時使用PHP和MySQL 與PHP一樣,MySQL也是一種開源應用程序,這意味著它可以免費使用,甚至可以修改(源代碼可下載得到)。有些情況下需要付費獲得MySQL許可證,特別是在銷售或打包使用MySQL產(chǎn)品來贏利時則更應如此。查看MySQL的許可政策,可以獲取這方面的詳細信息。 MySQL軟件包含多個部分,包括MySQL服務器(mysqld,它運行和管理數(shù)據(jù)庫)、MySQL客戶(mysql,它提供了一個訪問服務器的接口),以及出于維護等目的而提供的大量實用程序。PHP對MySQL的支持一直很好,在PHP的最新版本中,這一點表現(xiàn)得更為突出。 MySQL以處理大型數(shù)據(jù)庫而著稱,數(shù)據(jù)庫可以包含60 000張表,以及超過50億行的記錄。在某些操作系統(tǒng)上,MySQL可以處理容量高達800萬TB的表,在其他操作系統(tǒng)上,一般可以正常地處理4 GB的數(shù)據(jù)。MySQL已被NASA、美國人口普查局(United States Census Bureau)以及許多其他機構(gòu)采用。 在編寫本書時,MySQL已經(jīng)推出了版本5.5.13,并且版本5.6和版本6.0正在開發(fā)中。因為不同的MySQL版本有不同的特性,所以要清楚地知道你自己正在使用什么版本就非常重要了。本書使用的是MySQL 5.1.44和5.5.8,盡管只要使用MySQL 5.0以上版本就應該能夠完成本書中的任何事情。 你需要什么 要理解本書的示例,你需要以下工具: Web服務器應用程序(例如,Apache、Abyss或IIS); PHP; MySQL; Web瀏覽器(微軟公司的IE、Mozilla的Firefox、Apple的Safari、Google的Chrome等); 文本編輯器、支持PHP的所見即所得的應用程序(Adobe的Dreamweaver就具有這種能力)或者IDE(Intergrated Development Environment,集成開發(fā)環(huán)境); FTP應用程序(如果使用遠程服務器)。 利用PHP和MySQL開發(fā)動態(tài)Web站點的一大優(yōu)點是,無論什么要求都可以免費得到滿足,而不管使用的操作系統(tǒng)是什么!Apache、PHP和MySQL全都是免費的,大多數(shù)Web瀏覽器可以免費擁有,許多優(yōu)秀的文本編輯器可供免費使用。 本書附錄(可以從本書的支持網(wǎng)站http:\/\/www.peachpit.com下載)討論了在Windows和Mac OS X操作系統(tǒng)上的安裝過程。如果有一臺計算機,那么只需下載兩個產(chǎn)品即可創(chuàng)建動態(tài)Web站點(在這種情況下,你的計算機同時代表圖0-4和圖0-5中的客戶端和服務器)。另外,你還可以以每月幾美元的價錢購買Web虛擬主機服務,它會提供支持PHP和MySQL的已經(jīng)在線的環(huán)境。 關(guān)于本書 本書講述了如何利用PHP和MySQL來開發(fā)動態(tài)Web站點,涵蓋了大多數(shù)開發(fā)人員可能需要的知識。為了與Visual QuickPro系列圖書的格式保持一致,本書中使用逐步引導、圖文并茂的方式來討論。其重點依然放在實戰(zhàn)性很強的示例上,而不像有些書那樣,老是說什么“這些事情你能夠做到但是永遠也不要去做”。我自己就是一名Web開發(fā)人員,書里寫的都是我會用到的信息,并且避免了那些對手邊的任務來說無關(guān)緊要的東西。而作為一名老作者,我肯定會包括讀者想知道的主題和技術(shù)。 本書采用了循序漸進的結(jié)構(gòu)。前3章介紹了PHP的基礎(chǔ)知識(通過學習第2章,你就會開發(fā)你的第一個動態(tài)Web頁面)。之后,第4~7章介紹了SQL(Structured Query Language,結(jié)構(gòu)化查詢語言,用于和所有數(shù)據(jù)庫進行交互)和MySQL。它們介紹了SQL和數(shù)據(jù)庫設(shè)計的基礎(chǔ)知識,并且特別介紹了MySQL應用程序。然后,第8章介紹了調(diào)試和錯誤管理,這些是每個人都需要的信息。第9章專門介紹了如何結(jié)合使用PHP和MySQL,這非常容易做到。 第10~14章講述了更多的應用技術(shù),可以充實你的知識。特別是,這幾章中反復介紹了安全方面的內(nèi)容。第15章和第16章是本書這一版中的全新內(nèi)容,介紹了一些新技術(shù)。最后,本書包含了專門介紹示例的3章內(nèi)容,其中開發(fā)了幾類Web應用程序的核心,并穿插了許多說明。 本書讀者對象 本書讀者面很廣,從初學者到中級用戶都可以學習本書。考慮將來的兼容性問題,本書使用了XHTML,因此讀者必須具有使用XHTML或其前身HTML的豐富經(jīng)驗。盡管本書涵蓋了很多方面,但它沒有正式講述HTML或Web頁面設(shè)計。這些頁面少量使用了一些CSS,但是這里沒有講授它。 其次,本書希望讀者具有以下素質(zhì)之一: 學習的動力和能力,而不需要被人牽著鼻子走; 熟悉另一種編程語言(具備豐富的JavaScript知識也足夠了); 對PHP有一定的了解。 本書涵蓋了PHP和MySQL方方面面的內(nèi)容,講述了開發(fā)現(xiàn)實的Web站點需要知道的一切知識,不過,要特別指出的是,開頭幾章以較快的速度介紹了PHP。出于這種原因,我建議在開始學習新內(nèi)容時,最好具備一些編程經(jīng)驗或者好奇和獨立的精神。如果你發(fā)現(xiàn)有些內(nèi)容講得太快,那么從學習我的PHP for the World Wide Web: Visual QuickStart Guide的最新版本開始起步可能更好,其中的行文速度更適中。 學習本書不需要任何數(shù)據(jù)庫經(jīng)驗,因為本書是從最基本的級別開始討論SQL和MySQL的。 這一版本的新增內(nèi)容 本書的前3個版本非常受歡迎,我收到了許多肯定的反饋意見(感謝?。?。在編寫此新版本時,我希望不僅僅是更新PHP和MySQL最新版本的內(nèi)容,盡管這是全書的首要考慮事項。你將會發(fā)現(xiàn)其他新特性: 用新的示例演示讀者迫切需要了解的技術(shù); 另外一些高級MySQL和SQL示例; jQuery JavaScript框架使用手冊; 介紹面向?qū)ο缶幊袒A(chǔ)知識和基本語法; 提升腳本和網(wǎng)頁安全性的更多信息和示例; 用一整章的篇幅專門介紹如何阻止常見的Web站點濫用和攻擊; 用全新的一章介紹使用多種語言和時區(qū); 用全新的一章示例介紹創(chuàng)建消息板(也稱論壇); 擴展和更新了安裝和配置指導; 刪除了過時的內(nèi)容(例如,PHP的老版本中使用的特性或者不適用的特性)。 這一版在每一章的末尾新加入“回顧和實踐”小節(jié)。該小節(jié)的目的是回顧那一章介紹的主要內(nèi)容,給出一些練習,并以所學內(nèi)容為基礎(chǔ)進一步擴展相關(guān)知識。 對于買過本書前幾版的讀者(多謝?。?,我相信這些新特性也會使這一版本成為你的案頭必備。 與我的其他圖書的比較 這是我編寫的第四本關(guān)于PHP和\/或MySQL主題的圖書,下面按順序列出之前出版的另外3本書: PHP for the World Wide Web: Visual QuickStart Guide PHP 5 Advanced for the World Wide Web: Visual QuickPro Guide MySQL: Visual QuickStart Guide 我希望這份履歷暗示了我具有某種資格來編寫本書,但是,作為讀者,你該如何選擇呢?當然,我非常歡迎你慷慨地購買全套書,對你的這種做法,我會致以無盡的謝意,但是,如果你不得不從中選擇一本書…… PHP for the World Wide Web: Visual QuickStart Guide一書非常適合作為PHP的初學者指南。它與本書有一些重疊,大部分出現(xiàn)在前3章中,但是使用了新的示例,因此讀者并不會覺得多余。對于初學者,可以在閱讀那本書后再閱讀本書??隙☉撛陂喿x了本書之后再閱讀PHP 5 Advanced for the World Wide Web: Visual QuickPro Guide一書,因為它假定讀者具有相當多的知識并且是在這里介紹的許多內(nèi)容的基礎(chǔ)上編寫的。MySQL: Visual QuickStart Guide一書重點關(guān)注的幾乎都是MySQL獨有的內(nèi)容(只有兩章使用了PHP)。 在記住這些后,閱讀“本書讀者對象”一節(jié)的內(nèi)容,并看看其中的要求是否適合你自己。如果你根本沒有任何編程經(jīng)驗,并且更希望得到更細致的引導,那么我的第一本書可能更適合你。如果你已經(jīng)對使用PHP感到得心應手,并且想學習它的更多高級功能,可選擇第二本書。如果你最感興趣的是MySQL,并且不怎么熱衷于學習關(guān)于PHP的大量知識,那么可以購買第三本書。 如前所述,如果你想學習今天利用PHP和MySQL開始開發(fā)動態(tài)Web站點所需要知道的一切知識,那么本書就適合你!它涵蓋了這兩種技術(shù)的最新版本,使用了其他圖書中以前未討論的技術(shù),并且包含了獨具特色的示例。 無論你選擇哪一本書,都要選擇最新版本,或者與你將使用的技術(shù)最匹配的版本。 配套網(wǎng)站 我專門為本書開發(fā)了一個配套網(wǎng)站www.LarryUllman.com。在這里,你將找到本書中的每一個腳本、包含冗長的SQL命令的文本文件以及勘誤表(如果你有關(guān)于命令或腳本方面的問題,并且正好在學習本書,請檢查勘誤表以確保沒有印刷錯誤)。在該網(wǎng)站上,你還會發(fā)現(xiàn)有用的Web鏈接以及一個非常受歡迎的論壇,讀者可以在里面相互問問題并進行解答(我自己解答了其中許多問題),等等。 問題、評論或建議 如果你有關(guān)于PHP或MySQL的任何問題,應該求助于現(xiàn)有的許多網(wǎng)站、郵件列表、新聞組和FAQ倉庫。搜索引擎可以找到幾乎無限的資源。如果你需要得到即時解答,這些資源或搜索引擎可以基本滿足你的需要(十有八九已經(jīng)有人遇到并解決了你的問題)。 你也可以直接把你的問題、評論和建議發(fā)送給我。你可以使用本書的相應論壇得到最快的答復(我總是優(yōu)先解答這些問題)。如果你更喜歡給我發(fā)送電子郵件,網(wǎng)站上提供了我的聯(lián)系方式。盡管我不能保證會迅速給出回復,但我會盡力答復收到的每封電子郵件。 出版社提示:查看作者Larry Ullman隨附的教學視頻 可視化快速入門教程(Visual QuickStart Guides)現(xiàn)在更加“直觀”: 由于Visual QuickStart Guides系列書籍非常暢銷,Peachpit出版社提供了1個多小時的任務試教學視頻,可以幫助你快速掌握關(guān)鍵的特性和技術(shù)。你可以一邊閱讀書中的PHP和MySQL腳本,一邊看實戰(zhàn)視頻。這是一種非常理想的學習基礎(chǔ)知識和新的、更復雜的特性的方式。請訪問Peachpit網(wǎng)站,你就可以看到一些免費的視頻,也可以很方便地購買其他視頻。  

媒體關(guān)注與評論

"本書在我所讀過的技術(shù)圖書中首屈一指,不僅內(nèi)容全面,包含基礎(chǔ)到提高的所有必要內(nèi)容,還有幾個最常見的應用,而且闡述通俗易懂,讓初學者也能很快地開發(fā)出高質(zhì)量的Web應用程序。"

編輯推薦

本書是講述PHP和MySQL技術(shù)的暢銷書,以深入淺出、圖文并茂而廣受贊譽。書中通過大量來自實戰(zhàn)的例子、屏幕圖和詳細的解釋,循序漸進地涵蓋了開發(fā)人員最需要的知識點。本書采用基于任務的方法來講授PHP和mysql,使用圖形、圖表指導讀者深入學習語言,向讀者展示了如何構(gòu)造Web站點

圖書封面

圖書標簽Tags

評論、評分、閱讀與下載


    PHP與MySQL動態(tài)網(wǎng)站開發(fā) PDF格式下載


用戶評論 (總計11條)

 
 

  •   本人一直對mysql的了解很少,平時在做項目的時候,可愛的用php語言來完成數(shù)據(jù)庫本身就可以完成的功能,這本書對那些學習mysql的人很有幫助,但是其他的介紹的不是很多。
  •   不錯 很細致很簡單適合入門使用
  •   內(nèi)容有層次,循序漸進,也比較實用,好書
  •   好評,外國的書好好
  •   挺好的書!介紹的很有邏輯性,內(nèi)容編排很合理,值得擁有。
  •   這書還是挺靠譜的?;旧峡吹枚?,并且,容易理解。內(nèi)容也相當多。
  •   挺好的一本書,就是送貨太慢了。
  •   內(nèi)容較廣,但PHP講得不深
  •   PHP和MYSQL都點到為止,比較雞肋。
  •   個人覺的上面那位仁兄說的一點都不錯,確實是一本不只是將PHP和MYSQL點到為止的書,對于這本書我覺的大家還是不要買了。
  •   應附帶光盤,要不然很難看懂
 

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

京ICP備13047387號-7