Archive for the Category Webdev

 
 

[PHP] 如何保護Querystring?

David Walsh的文章:Tips for Protecting Querystring Keys & Values in PHP,建議了以下五種保護Querystring參數和值的方法:

  1. 整數需指定資料型態(Typecast Value when Expecting Numbers):確保整數不會被當成字串而造成錯誤。
  2. 淨化輸入值(Sanitize Input):建立各種類型資料的處理函式,確保資料傳遞時的一致性與安全性。類似在Dreamweaver裡面的GetSQLValueString函式。
  3. 關閉REGISTER_GLOBALS(Make Sure REGISTER_GLOBALS is Off)。
  4. 不使用有意義的變數名稱(Don’t Make Variable Names Meaningful):David原本的建議如下,但是有一位仁兄在回應中則持反對的意見,認為這並無助於安全性(還是可以從數值的一致性猜出變數的意義)。
  5. 將數值加密(Encrypt Querystring Values):使用md5來加密參數值。

最後,請問有人知道「Querystring」的中文怎麼翻譯嗎?

[jQuery] 用Jeditable快速更新MySQL資料

Jeditable是一個用來達成「就地編輯」(Edit In Place)目的的jQuery plugin,以下簡單介紹這個外掛的用法,以及如何將編輯完成的內容更新到MySQL資料表中。

在本文的範例中,要更新的是如下的資料表:

通常我們會把資料表的資料拉到網頁裡,如下圖,前兩個欄位即是要利用Jeditable來編輯的資料。第一欄(對應資料表category欄)要使用文字框(text input)來編輯,第二欄(對應資料表parent欄)則是用下拉選單(select)編輯。

將要更新的資料以div包住,並加上class和id屬性。請注意id值的數字是用php動態產生的,即是資料表的cId欄位值

使用這個外掛的語法如下:

在這幾個參數裡面,第一個參數「save.php」即是將更新內容存入資料庫的後端處理程序,其他的參數應該不難理解;比較值得介紹的是「loadurl」這個參數,如果我們希望動態產生下拉選單的內容,就必須使用loadurl來加入外部資料。這個部份請參閱Jeditable官方網頁的「How to use selects?」一節。

完成上述步驟後,就地編輯就會開始作用了。點擊可編輯的文字時,Jeditable會自動產生一張表單,在本例中會依照「type」參數的設定,出現文字框或下拉選單:

按下「修改」送出表單時,Jeditable預設後端(save.php)會接收到兩個POST變數:$_POST['id']和$_POST['value'](變數名稱也是預設的,可以使用id和name兩個參數修改)。$_POST['id']的值等於前述放在div裡的id值,$_POST['value']則是在表單欄位內輸入的值。

後端(save.php)更新資料表的程式碼如下(參考來源:DeviLib.com):

完成後的成品網頁請按此測試。有個缺憾是,這個外掛無法直接搭配jQuery Validation一起使用,必須另行客製(有善心人士可以提供嗎?),所以我是用php在後端做資料驗證的。想了解更多資訊,請務必到Jeditable官方網頁一遊。有任何的問題指教,也歡迎與我討論。

RegExr:線上正則表達式測試工具

2008-05-08_1909

RegExr是由Grant Skinner開發的線上正則表達式(Regular Expressions,RegExp / RegEx)測試工具,它提供了一個簡單的介面讓使用者輸入正則表達式,並即時在可編輯的文字區內標示搜尋結果。在視窗的右側,還提供常用的語法片段與參考範例,透過不斷試誤的過程,讓使用者了解如何運用正則表達式。

RexExr採用Flex 3開發,使用的是ActionScript 3(不十分完美)的正則表達式引擎,所以搜尋的結果未必百分百正確。如果你的電腦(Windows、OSX或Lunix)有安裝AIR 1.0 runtime的話,你也可以使用可安裝的版本

此外,如果寫程式碰到要用到正則表達式卻不知從何寫起時,不妨到Regular Expression Library挖寶,可能一不小心就把答案翻出來了,會節省很多時間喔。

網站開發人員的SEO小抄(修正版)

seo cheatsheet

Danny DoverSEOmoz整理了一份給網站開發人員看的SEO小抄,滿滿兩張A4,應該稱得上是大抄,而且真的很實用。

我比較感興趣的是其中兩個部份:

  • 建議的Title標籤寫法(Recommended Title Tag Syntax):
  • 5/8補記:經過一連串的討論,Danny在5/1修改了Title寫法。基本上順序就是按照行銷的優先性來排列的:

    關鍵字 < 分類 | 網站標題

    網站名稱 | 分類 > 次分類 - 網頁主題

  • 避免以下會將搜尋引擎機器人拒於門外的情況(Common Robot Traps to Avoid):
    • 表單(Input Forms,不過Google前不久已經宣佈會開始爬GET方法送出的表單)
    • 網址中帶有Session ID(Session IDs in URL)
    • 用Cookie限制瀏覽的頁面(Pages Restricted by Cookies)
    • 頁框(Frames)
    • 登入限制(Logins)

依照前者的建議,我使用All in One SEO Pack這個外掛修改了Idea Grapes的Title寫法;也一併更新了Permalink格式(多虧了Dean’s Permalinks Migration幫忙做301轉向)。目前使用的Permalink格式是/%year%/%monthnum%/%postname%/,之所以不使用一般建議的/%category%/%postname%/是因為我自己做的分類沒有太大的SEO意義,而我在Google如果看到搜尋結果列出部落格的文章,通常會看一下它是什麼時間發表的,避免看到太舊的資料浪費時間,所以還是保留了發文的時間在URL中。

Kotatsu:簡易HTML表格產生器

2008-04-26_1143

CSS Guy說他用Dreamweaver這麼久,唯一會想念的功能就是畫表格,特別是幫某欄的所有儲存格加上class的時候。

所以他做了一個簡單的線上小工具:Kotatsu,可以增加欄或列,然後為指定的欄或列加上class,最後產出表格的HTML原始碼。

雖然可以用colgroup,我自己也是最喜歡用Dreamweaver去幫欄列加上class,所以這個簡單的工具對我來說很實用啊。

附註:

Pages: 1 2 3 4 5 6 7 8 9 »