有趣的JSON技術

寫 javascript 對一般的網頁程式設計人員來說, 應該是家常便飯, 舉凡一些需要在 client side 完成的事, 大多會利用 javascript 來操作, 例如滑鼠經過換色, 或是檢查 form (表單)在送出前的一些資料正確性檢查(ps. 一定要記得在 server side 也要再次檢查, 以確保資料的正確性)或方便使用者輸入的自動更正等功能.

javascript 的功能強大, 又加上高階, 物件化等特性, 使得撰寫 javascript 的程式設計人員十分愛用, 也方便許多在 client side 就可以先完成的一些動作, 再加上最近的 Ajax 風行, javascript 無疑變成十分熱門的語言.

JSON (Javascript Object Notation)相信很多人有聽過, 但也有很多人不知道這個東西, 他是附屬在 javascript 下的一組物件描述方法, 這個網站介紹十分詳細: http://www.json.org/, 有很容易了解的圖示幫助使用者了解 JSON 物件的描述方式.

JSON 是利用了成對的 {} 來包住各物件(object), 用成對的 [] 來包任各陣列(array), 用成對的 “” 來包住各字串, 用逗號來區隔各變數, 而資料型態有 string, number, array, object, 另外有三個常數, true, false, null. 下面描述了一個 object obj1 擁有兩個成員變數, 而另一個為 array 擁有 5 個 number 的範例:

{ 'obj1': {
  'child1':'value1',
  'child2':'value2'
  },
  'array1': [1, 2, 3, 4, 5]
};

php error handling

今天來研究一下 php 的 error handling, 一般的程式錯誤, 很重要的一件事就是錯誤處理, php 當然也不例外. php 本身對於錯誤處理已有一套完整的設計, 讓程式設計人員可以很容易地進行錯誤處理.

我們可以參考內建 function 進行 error handler 設置, 這個 function 為 :
mixed set_error_handler ( callback error_handler [, int error_types] )

該 function 傳入的 callback function即為我們要使用的 error handling function, 該 function 定義如下:
handler ( int errno, string errstr [, string errfile [, int errline [, array errcontext]]] )

xmlRequest更換網頁內容

AJAX?

不就是這樣子嗎? 利用一種方法, 在不換頁的狀況下, request web 的 content 後, 進行訊息的顯示或是畫面的更新(dhtml), 這不就是 AJAX? 是的, 其實很容易也很簡單實現, 要做到不換頁更新畫面的方法就是這麼簡單.

分類
程式技術

有趣的rewrite

之前在設定 apache rewrite 感覺很有趣, 可以做很多應用, 加上功能強大, 幾乎可以將網址改的很炫很讚, 後來也玩了一下 ISAPI_Rewrite (網址: http://www.isapirewrite.com/), HELICON提供的 ISAPI_Rewrite 功能也類似, 免費版本 ISAPI_Rewrite Lite 可以使用於該 iis 上全部的網站, 所以若要設定個別的虛擬主機的 rewrite rule 時, 就要花錢買 ISAPI_Rewrite FULL. 當然 apache 的 rewrite module 是完全免費的囉.

新增TT訪客計數器(VisitorStatistics 0.61)

看到 tt0.96 版本有一個計數器, 覺得應該在 1.05 版上也要有一個這樣的功能, 於是就著手製作一個 tt1.05 版本使用的計數器, 由於在1.05版是多人結構, 再加上要配合 plugin 的寫法, 所以比較複雜一點, 另外為避免功能單調, 除原來的 line graph外, 另外再多加上了 bar graph的型式, 這樣比較豐富一點, 產生的結果如下:

為能讓有 tt 的愛用者能協助測試, 目前版本定為 0.6 版, 請有興趣的朋友協助測試並告知是否有問題, 安裝方式如同一般的 plugin, 解開放在 plugins 目錄下, 由後台啟用該 plugin 即可, 並於使用的 skin 上, 加上要出現該訪客計數器的位置, 使用 [ ##_ VisitorStatistics _## ] 標籤(為避免衝碼, 用空格隔開, 實際標籤無空格)即可順利產出你的網站人數統計. 相信應該很容易使用.

更新記錄
[2006/6/24]
感謝Raie協助測試, 並告知 table 大小寫問題, 目前已更新完成, 版本同時更新為0.61版本完成.

下載點:
VisitorStatistics-0.61.zip

分類
程式技術

OCX版本及自動更新功能

(由於是使用 ActiveX 方式, 故僅支援 IE 的瀏覽器.)

使用網頁部署程式是最方便的, 因為每台電腦都有 web browser, 利用 ocx 的方式更是好用的更新方式, 然而, 版本檢查更新是該部署方式最好用的地方.

如何利用 ocx 部署應用程式, 並且自動偵測使用者端的版本及現在要部署的版本新舊狀況後, 再進行更新呢? 因為 ocx 在 build 時, 可以放入版本資訊, 例如 1.0.0.0, 其中 4個代碼分別為:

major.minor.build.revision

分類
好用軟體

很好用的javascript除錯工具FireBug (firefox)

firefox extesion tools好用的不少, 在一個偶然的機會, 發現有個對 javascript除錯相當好用的工具, FireBug.

原來在firefox內建的javascript console就已經能提供相當多的資訊應用於javascript有錯誤時的除錯, 然而, firebug更強捍的地方有

TT時間不對

其實發現tt時間不對也不是現在才發現, 只是一直沒去查問題, 在沒有追蹤code的狀況下, 想說先看看別人架tt內文章的時間對不對來確認一下, 先到朋友 “偉的1978部落格” 看一下, 結果原本想先貼一篇comment後再看時間, 想說不要找最新的文章貼, 隨手點一篇舊文章, 說來還真巧, 隨便一點, 就點到他也發現時間不對的這篇文章, 文章連結: http://jin.tw/jin/288 還真不是普通巧, 莫非是天意…

不過看了朋友的解決方法, 很直接也很乾脆, 就是不要看 OS 的變數, 這也 OK, 但我還是想找原因, 怎麼會 $_ENV[‘OS’] 變數會沒有值呢? 先用 phpinfo() 測一下, 確定有值後, 再測其他的 environment variables, 結果都沒有值, @@”

所以就想找找原因, 找了老半天, 終於找到了, 原來在 php 裡預設的 variables_order = “GPCS” 也就是 $_GET, $_POST, $_COOKIE, $_SERVER 都是有的, 但 $_ENV 就是預設沒有, 是 performance 考量, 所以沒有 enable $_ENV, 建議用 getenv() 方式來取得環境變數, 接下來就是兩條路可以走, 一為將 variables_order = “GPCSE” , 另一就是將 tt 的 code 由 $_ENV[‘OS’] 修改為 getenv(‘OS’) 這樣就好了, 還好存在 db 的時間資料都是對的, 就是時區問題而已啦….