close

話說大爺之前介紹了一支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的版本之後就沒問題啦~!


又讓大爺解決了一個棘手的問題啊

我真是聰明…哈 ^^

arrow
arrow
    全站熱搜

    大爺 發表在 痞客邦 留言(0) 人氣()