2011-09-12 19 views
0

我正在使用JavaScript 只有進行字段身份驗證。我需要引入垃圾郵件過濾器。我的問題是。使用javascript進行表單認證+機器人

  1. 我應該引入服務器端腳本來解決垃圾郵件的問題(更多的工作)的提交形式
  2. 禁用的用戶,如果JavaScript被禁用?
  3. 作出誰禁用了JavaScript(機器人爲例)人單獨形式

問題arised因爲垃圾郵件。作爲一個側面的問題。 機器人如何工作?他們只是禁用JavaScript。這是一個蹩腳的問題。

表單的編碼方式非常不正規,這意味着PHP腳本的代碼更改將相當可觀,相當於設計一個新頁面。

在此先感謝。

回答

0

我應該引入服務器端腳本來解決垃圾郵件的問題(更多的工作)

從提交表單,如果禁用JavaScript禁用用戶?

你不行。(你可以把一些塊,這將使不方便讓他們提交它,但你無法控制哪些數據人家送你的服務器。)

作出誰禁用了JavaScript的人一個單獨的形式(例如機器人)

Build on things that work

如何機器人工作?

他們發出HTTP請求並處理響應。

他們只是禁用JavaScript。

它們通常運行在首先不支持JavaScript的引擎上。

的方式形式已經被編碼是相當非正統的,這意味着PHP腳本代碼變化將是相當大的,相當於設計了新的一頁。

聽起來像是在維護地獄,需要重構爲了未來的任何變化或可能需要調試。

+0

對等於重寫整個頁面,但它只是註冊表單和重寫它的一次。 –

1

大多數機器人通過最佳猜測值來插入表單字段,基於它們的name屬性;例如,電子郵件式的值將在<input type="text" name="email"/>插入,和偉哥的廣告將在<textarea name="body" />

插入,同時防止用戶禁用JavaScript將停止一些(大多數?)的垃圾郵件通過未來,您也有可能阻止您的用戶使用您的網站;你想冒這個風險嗎?

防止垃圾郵件的最常見方式是要求用戶填寫驗證碼;給他們一個難以破譯的圖像,並要求他們寫出這個詞。 reCaptcha被許多網站使用,但我只會在表單中包含reCaptcha作爲最後的手段。

一個阻止垃圾郵件的我比較中意的方式是插入假的,隱藏的,輸入字段到表單(type="hidden),並給他們的名字,如emailwebsite等普通用戶不會爲這些字段中輸入任何值,因爲它們是隱藏的,但垃圾郵件機器人可能是

0

您可以使用驗證碼,但這不會改善用戶體驗。

我喜歡使用的一個技巧是添加一個字段名稱它就像電子郵件然後使用CSS隱藏它,並檢查服務器端,如果該值仍然是空的。

+0

感謝您的答案。我的問題是更多的設計相關,哪種方法最好。該網站主要用於公司員工。 –