在PHP中最常見的應用就是互動表單,因此接收用戶端資訊是非常常見的事!然而俗話說:「世風日下,人心不古」,這年頭誰知道用戶端的人在想些什麼?用戶端送出的資訊很有可能會包含一些惡意的語法,對於24小時暴露在網路環境的網站來說,時時刻刻都得小心防範駭客的攻擊,提升自我的資訊安全觀念非常重要。所以在接收用戶端資訊後,存入資料庫之前,都會先對其進行基本的過濾;第一個要判斷的就是HTML語法的攻擊!
許多惡意語法都是建立在HTML上,PHP本身有提供轉換HTML碼的函數:htmlspecialchars()與htmlentities();其中htmlspecialchars()只會轉換HTML相關碼:
danielhuang030 發表在 痞客邦 留言(0) 人氣(58)
說來慚愧,之前完全沒有注意物件導向的定義與使用;但是因為現在工作所使用的撰寫方式為全物件導向,這意味著我要重頭學起~從《深入淺出JAVA 第二版》開始!
事實上維基百科對於物件導向程式設計的介紹也非常完整,但是頂多也就這麼一個頁面的介紹,要把物件導向的全貌解釋清楚,還略嫌不足;當初看完整篇介紹,其實對物件導向仍是一知半解的狀態...
之前Jace就在如何學習ZendFramework
danielhuang030 發表在 痞客邦 留言(0) 人氣(3)
經由透視WebMVC的作者Jace親自講解,讓我稍微了解到什麼是MVC架構。透過一個簡單的留言版程式的範例解構,重新建立一個符合MVC架構的留言版程式。
依照過去一般留言版程式的撰寫模式,先將其分為二個部分:一個是業務邏輯、表現邏輯。業務邏輯(business)是指PHP控制與執行的部分;表現邏輯(present)則是指單純HTML或XML輸出呈現的部分。一但程式分為此二部分,表現邏輯就相當於View的部分;之後再將業務邏輯分成Model與Controller。
Model在留言版程式中所代表的角色,就有點像是「取得資料」這一部分;不論取得資料的方式是經由文字檔或是資料庫的連結讀出寫入,這一塊在MVC的架構中就相當於Model的部分。所以在範例的留言版程式中,Guestbook.php扮演的角色是用來與資料來源溝通的管道。
Controller在留言版程式中所代表的角色,就比較像是「操縱動作」這一部分;從留言版程式的功能面來說,分為選擇頁面(首頁/新增頁/RSS的XML頁面)、新增資料時取得的變數與重新導向。如果說Guestbook.php是與資料來源溝通的管道,Actions.php就像是觸發事件,以及運用Guestbook.php去產生動作的角色;當然最後所呈現的結果是View。所以Controller可以說是串聯Model與View的重要橋樑。
danielhuang030 發表在 痞客邦 留言(0) 人氣(11)
因為哇寶在Ajax的應用上是採用jQuery,所以利用時間稍為了解一下。
我以往在處理Ajax時大部分是借用網上的範例JS檔,所以它通常都有一套制式的規範,哪裡要new,哪裡要丟參數,範例上都寫得清清楚楚,只要按部就班,通常都能很快達到我想要的功能。另外一種是土法煉鋼,自己造輪子;先從JS丟參數到php,再由php切我要的參數去跟伺服端Query我要的資料,最後呈現。這二種方式其實好像都不是正統的方式說...在看完jQuery的介紹後更是讓我有這樣的感覺~
網路上其實有很多淺顯易懂的介紹,我是看:國二學生認真打雜的jQuery 學習心得筆記一系列文章稍微接觸jQuery這個Framework的。詳盡且生動有趣的介紹,讓我對jQuery有粗淺的認識!有興趣可以去逛逛~^^
danielhuang030 發表在 痞客邦 留言(0) 人氣(3)
ZendFramework是PHP的一個開發用框架,主要以PHP5作為撰寫時的基礎。要使用之前當然得先建立環境,以下是安裝的順序:參考「在Zend Framework上開發一個HelloWorld」
1、首先先從ZendFramework的官方網站下在最新版本的ZendFramework 1.5.1;解壓縮後放在任意資料夾。我是放在「C:\ZendFramework」這個目錄下。
danielhuang030 發表在 痞客邦 留言(0) 人氣(2)
Windows環境下伺服器的安裝:apache_2.2.8-win32-x86-no_ssl.msi;php-5.2.5-Win32.zip;mysql-essential-5.0.51a-win32.msi;phpMyAdmin-2.11.5-all-languages-utf-8-only.zip
事實上在Windows環境下,我一直是用
danielhuang030 發表在 痞客邦 留言(1) 人氣(13)
這是哇寶國際資訊的一份基本能力測試;很多東西雖然不能說完全沒有概念,不過要詳細回答不免還是要google一下,由此可知我的能力還遠遠不足。當作是自我測試與吸取新知吧,開始解題囉...
(X)HTML篇:
1、請寫出有序清單和無序清單的的 HTML Tag 並簡述其差異。
danielhuang030 發表在 痞客邦 留言(0) 人氣(15)
這是移除時的流程筆記,想當初我第一次移除SQL SERVER 2005的時候,花了我一整天的時間哩~本來還差點移不掉的說,一直狂google文章才好不容易移除乾淨。一開始移除時候,以為非常簡單的從「控制台」->「新增移除程式」裡直接勾選就OK了~沒想到因為當初安裝的時候還有一堆雜七雜八的附屬程式,如果只移除本體其他附屬程式就會出大問題...搞得我內心有陰影,一直不敢移除SQL SERVER 2005...
這次要移除前學聰明了,先去google了一下移除方法,微軟官方網站正好有手動移除;就參考他的步驟,一步一步走走看囉。
1、備份資料:移除前當然要先把之前所記錄的資料備份一下囉。
2、停止所有的SQL SERVER服務:為了避免在移除過程中,SQL SERVER仍在執行導致無法正確移除;所以要先關閉它的所有服務。從「我的電腦」->「滑鼠右鍵」->「管理」->「服務」把所有SQL SERVER的服務停止,這樣就OK啦。
3、在命令提示字元下,輸入" cd\Program Files\Microsoft SQL Server\90\Setup Bootstrap\ARPWrapper.exe /Remove"。
4、選擇移除所有SQL SERVER 2005相關檔案。
5、一段不算短的移除時間。移除完以後就OK啦!最後再將「控制台」->「新增移除程式」->「Microsoft SQL Server Native Client 元件」解除安裝;所有的SQL SERVER 2005就算移除完畢囉!
沒想到這麼容易,當初真的應該要先google一下的~^^|||
danielhuang030 發表在 痞客邦 留言(0) 人氣(64)
AIR:Adobe Integrated Runtime,Adobe整合執行環境。簡單的說,Adobe Air把網路和桌面結合在一起,讓使用者可以從桌面端直接操控網路服務,而不需使用瀏覽器。
RIA:Rich Internet Application,豐富網際網路應用程式。網頁(應用程式)不但要能夠靈活簡單地與使用者回應互動,還必須符合人類直覺與經驗,並融合了網際網路應用程式易開發與低成本的特性。RIA企圖以可向量化動態圖像的前端工具,結合後台各式應用程式來打造跨平台的網路應用服務。
REST:Representational State Transfer,表象化狀態轉變。REST主要概念是「資源」。規定要將應用程式的狀態和功能,區分成各自獨立的資源,具有唯一的連結網址。
danielhuang030 發表在 痞客邦 留言(0) 人氣(0)
一般正常在處理Big5<->UTF-8編碼上的轉換,第一個想到的就是iconv()函數;雖然需要額外安裝iconv函式庫,不過因為大部分人都有這種需求,虛擬主機商一般都會安裝,如果是自己的主機就更沒有這種問題了~
在Big5轉換成UTF-8方面,完全沒有問題;不過在UTF-8轉換成Big5方面,可就出現問題啦!因為UTF-8編碼對應的字遠比Big5編碼多,所以在一些特殊中文字的轉換上,如:堃、犇等字,iconv()函數就會出現錯誤啦!本來一直都沒有發現到這方面的問題,不過最近在公司專案管理系統上的Excel表轉出時,遇到有對方公司有「犇」這個字,讓iconv()函數發生錯誤而導致轉出的Excel檔案整個損壞的情況發生...Excel在正常輸入時是對應UTF-8編碼的,不過在轉出檔案時必須改為Big5編碼,不然UTF-8編碼的中文字會變成亂碼~無法自動判斷真是傷腦筋耶!
danielhuang030 發表在 痞客邦 留言(6) 人氣(333)