PHP不是什麼複雜高深的技術,但同時,你也不要期望能夠在5分鐘內就成為專家。對新手來說,最大的不適應可能就是PHP的容錯度比瀏覽器對HTML的容錯度低很多。在HTML中如果漏掉了一個結束標籤,大多數的瀏覽器仍然會顯示該頁面。在PHP中,如果你漏掉了一個結束引號、分號或大括號,將會像圖1-3所顯示的那樣得到錯誤訊息。這不僅僅是PHP的一個特性,所有的伺服器端技術都是如此,包括ASP、ASP.NET和ColdFusion。
圖1-3 像PHP這樣的伺服器端語言無法容忍大多數的編碼錯誤
如果你是使用可視化設計工具(如Adobe Dreamweaver或Microsoft Expression Web)的網頁設計人員或開發人員,並且從不留意基礎程式碼,那麼是時候該反思一下你的方法了。將PHP和結構差的HTML混合在一起有可能會導致一些問題。 PHP利用循環來執行重複性任務,例如顯示資料庫搜尋的結果。一個循環(loop)重複同一段程式碼(程式碼通常同時包含PHP和HTML),直到所有的結果都顯示出來。如果你將循環放到了錯誤的位置,或者HTML的結構差,那麼頁面就有可能像用紙牌搭的房子一樣倒塌。如果你還不習慣這樣做,使用W3C(World Wide Web Consortium)的Markup Validation Service(validator.w3.org/unicorn)來檢查你的頁面是一個不錯的主意。
W3C是一個國際組織,它負責制定標準(如HTML和CSS),並制定保證Web長期發展的指導方針。它由World Wide Web的創作者Tim Berners-Lee領導。要了解W3C的使命
是否可以只複製和貼上程式碼
複製這本書中的程式碼沒什麼錯,這正是它們存在的目的。複製是我們小時候都學過的方法,但我們大多數人都會擺脫模仿的階段,我們會提出問題並且開始親自實驗。我並不打算用一些對於網頁沒有直接價值的乏味的練習題來教你學習PHP,本書就是要讓你可以直接將新獲得的知識運用到實際項目中。同時,我會解釋程式碼是用來做什麼的以及為什麼它會出現在那裡。即使不能準確地理解它的工作原理,你也會獲得足夠的知識來了解程式碼的哪個部分適合你的需要,哪個部分最好不要去理會。
PHP是一個提供了大量強大功能的工具箱。它擁有數千個內建函數,可以執行各種任務,如將文字轉換成大寫,從完整尺寸的圖像生成縮圖,或連接到資料庫。真正的強大之處在於將這些函數以不同的方式組合使用,並且加入自己的條件邏輯。為了從本書中學到更多內容,你需要用你在書中學到的工具來進行實驗,並且提出你自己的解決方案。
PHP的安全性
PHP就像是你家中的電或菜刀:如果正確使用,它是非常安全的;如果不負責任地操作,它就會造成許多傷害。本書第1版的靈感之一就來自2005年年底接二連三爆發的惡意攻擊。這些攻擊利用了電子郵件腳本的一個漏洞,將網站變成了垃圾郵件中繼。沒有幾個人免於危害。我當然也未能倖免,但是意識到這個問題以後,我修補了漏洞,並及時制止了這些惡意攻擊。不過,每天都有人發送緊急的請求到線上論壇上以尋求幫助。即使被告知如何處理這種問題時,他們的回應甚至變得更加抓狂。許多人承認他們完全不了解他們在網站中使用的程式碼。有些人把創建網站當成一種業餘愛好,這似乎是可以理解的,但是這些人中有許多都是替客戶創建網站的「專業人士」。當這些客戶的信箱開始充滿垃圾郵件時,他們自然就會很不高興。當主機代管公司因為無法忍受伺服器上的不安全腳本而將客戶的網域名稱停用時,他們毫無疑問會更加不高興。
這個故事的寓意不在於PHP是不安全的;也不在於每個人都需要成為使用PHP的安全專家。重要的是了解PHP安全性的基本原則:在處理使用者輸入之前必須進行檢查。你會發現這將成為貫穿本書始終的主題。只要付出很少的努力,大多數的安全風險就能夠被消除。
最令人擔心的方面可能是在這個問題被首次揭示出來五年多之後,我仍然能看到許多人在使用不安全的郵件腳本。保護自己的最佳方法就是了解你正在使用的程式碼。即使你不能自己解決問題,也可以實施由腳本的編寫者或其他專家建議的補救措施。
以上就是使用和學習PHP有多難的內容,更多相關內容請關注PHP中文網(www.php.cn)!