話說大爺之前介紹了一支jquery的表單驗證碼程式 Real Person
結果遇到了大問題了!!
在上一篇的文章內有提到 (http://ckwsteven.pixnet.net/blog/post/27540866)
這支驗證程式是透過雜湊的方式
將英文字母轉換成數字之後
再經由伺服器端來比對
如果有看過原始碼的鄉親應該就會發現
其實作者在這支外掛程式上新增了一個隱藏版欄位
這個隱藏版欄位它的class名稱是realperson-hash
而這個隱藏版欄位的值就是計算過後的雜湊值
所以我們不一定要使用作者建議的
form表單的傳遞方式
而可以直接透過讀取這個隱藏版欄位的值
來取得這個英文字母計算過後的雜湊值
然後再透過AJAX的方式傳送給伺服器來比對
而這也是大爺目前所使用的方法
但問題來了!!
很大的問題
我在自已的主機上測試是沒問題
不論是本地端程式還是伺服器端程式產生的雜湊值都是相同的
可是將程式上傳到「000webhost」之後就會產生問題
在經過一陣的測試之後
本地端這邊的雜湊值都是正確的
可是000webhost主機上的程式所產生的雜湊值
就是會多出3碼…也就是變成12碼的數字 @@
(大爺是用5個英文字母來當作驗證碼…所以正確應該是產生9碼的數字)
這真的很討厭
不知道是不是000webhost這個免費的空間
在檔案中加上了自已的一些東西
這下子真的可麻煩了 = ="
後記
後來大爺又重新看了一下官方的說明文件後…發現
在php的伺服器程式這邊有分成32位元和64位元兩種版本
也就是說如果伺服器是64位元的話
那雜湊值演算法應該是要使用64bit這個版本
以上都是大爺的猜測
既然是猜測…那就來試試看吧
果然!!…就是這樣子的
因為大爺的電腦已經是屬於舊石器時代了
所以使用32bit的版本是沒問題的
而上傳至000webhost的伺服器之後就出現了問題
所以000webhost的伺服器應該是用64bit
改成了64bit的版本之後就沒問題啦~!
又讓大爺解決了一個棘手的問題啊
我真是聰明…哈 ^^