1. 程式人生 > 實用技巧 >使用和學習PHP有多難

使用和學習PHP有多難

PHP不是什麼複雜高深的技術,但同時,你也不要期望能夠在5分鐘之內就成為專家。對於新手來說,最大的不適應可能就是PHP的容錯度比瀏覽器對HTML的容錯度要低得多。在HTML中如果漏掉了一個結束標籤,大多數的瀏覽器仍然會顯示該頁面。在PHP中,如果你漏掉了一個結束引號、分號或大括號,將會像圖1-3所顯示的那樣得到一條錯誤訊息。這不僅僅是PHP的一個特性,所有的伺服器端技術都是如此,包括ASPASP.NETColdFusion

1-3 像PHP這樣的伺服器端語言無法容忍大多數的編碼錯誤

如果你是使用視覺化設計工具(如Adobe DreamweaverMicrosoft Expression Web

)的網頁設計人員或開發人員,並且從不留意基礎程式碼,那麼是時候該反思一下你的方法了。將PHP和結構差的HTML混合在一起有可能會導致一些問題。PHP利用迴圈來執行重複性任務,如顯示資料庫搜尋的結果。一個迴圈loop)重複同一段程式碼(程式碼通常同時包含PHPHTML),直至所有的結果都顯示出來。如果你將迴圈放到了錯誤的位置,或者HTML的結構差,那麼頁面就有可能像用紙牌搭的房子一樣倒塌。如果你還不習慣這樣做,使用W3CWorld Wide Web ConsortiumMarkup Validation Servicehttp://validator.w3.org/unicorn)來檢查你的頁面是一個不錯的主意。

W3C是一個國際組織,它負責制定標準(如HTMLCSS),並制定保證Web長期發展的指導方針。它由World Wide Web的創立者Tim Berners-Lee所領導。要想了解W3C的使命,參見www.org/Consortium/mission

 是否可以只複製和貼上程式碼

複製這本書中的程式碼沒什麼錯,這正是它們存在的目的。複製是我們小時候都學習過的方法,但我們大多數人都會擺脫模仿的階段,我們會提出問題並且開始親自實驗。我並不打算用一些對於網頁沒有直接價值的乏味的練習題來教你學習PHP,本書就是要讓你可以直接將新獲得的知識運用到實際專案中。同時,我會解釋程式碼是用來做什麼的以及它為什麼出現在那裡。即使不能準確地理解它的工作原理,你也會獲得足夠的知識來了解程式碼的哪個部分適合你的需要,哪個部分最好不要去理會。

PHP是一個提供了大量強大功能的工具箱。它擁有數千個內建函式,可以執行各種任務,如將文字轉換成大寫,從完整尺寸的影象生成縮圖,或連線到資料庫。真正的強大之處在於將這些函式以不同的方式組合使用,並且新增進你自己的條件邏輯。為了從本書中學到更多內容,你需要用你在書中學到的工具進行實驗,並且提出你自己的解決方案。

PHP的安全性

PHP就像是你家中的電或菜刀:如果正確使用,它是非常安全的;如果不負責任地操作,它就會造成許多傷害。本書第1版的靈感之一就來自2005年年末接二連三爆發的惡意***。這些***利用了電子郵件指令碼的一個漏洞,將網站變成了垃圾郵件中繼。沒有幾個人免遭危害。我當然也未能倖免,但是意識到這個問題以後,我修補了漏洞,並及時制止了這些惡意***。不過,每天都有人傳送緊急的請求到線上論壇上以尋求幫助。即使被告知如何處理這種問題時,他們的回覆甚至變得更加抓狂。許多人承認他們完全不瞭解他們在網站中使用的程式碼。有些人把建立網站當成一種業餘愛好,這似乎是可以理解的,但是這些人中有許多都是替客戶建立網站的“專業人士”。當這些客戶們的郵箱開始充滿垃圾郵件時,他們自然就會很不高興。當主機託管公司由於無法忍受伺服器上的不安全指令碼而將客戶的域名禁用時,他們毫無疑問會更加不高興。

這個故事的寓意不在於PHP是不安全的;也不在於每個人都需要成為使用PHP的安全專家。重要的是瞭解PHP安全性的基本原則:在處理使用者輸入之前必須進行檢查你會發現這將成為貫穿本書始終的主題。只要付出很少的努力,大多數的安全風險就能夠被消除。

最令人擔心的方面可能是在這個問題被首次揭示出來五年多之後,我仍然能看到許多人在使用不安全的郵件指令碼。保護自己的最佳方法就是了解你正在使用的程式碼。即使你不能自己解決問題,也可以實施由指令碼的編寫者或其他專家建議的補救措施。

——摘自《PHP動態網頁設計(第2版)》

轉載於:https://blog.51cto.com/turingbook/897625