2011-09-09 69 views
1

早上好,我正在嘗試和失敗實施驗證碼,主要是因爲我沒有asp經驗,任何人都可以協助嗎?Honeypot Captcha經典asp代碼?

多個html頁面在頁腳中有一個聯繫表單,它具有表單驗證並觸發一個發送電子郵件的asp頁面&重定向到thanku.asp。

我想添加蜜罐驗證碼,所以添加了另一個字段[body]並使用css隱藏它。然後我添加了下面的代碼來檢查它的null。當我點擊提交時,即使隱藏字段中有內容,表單也會被處理,任何人都可以發現我要去的地方有錯嗎?

<div id="captchafield"> 
<input type="text" name="body" value="" /> 
</div> 

<script language=javascript> 

if(!String.IsNullOrEmpty(Request.Form["body"])) 
    IgnoreComment(); 

    </script> 
+3

您似乎混淆了ASP,ASP.Net,Javascript和C#。 – SLaks

回答

4

你錯了,只檢查字段只有JavaScript;你應該檢查它是空白的服務器端,如果沒有,然後忽略/拒絕提交。例如。

HTML

<div id="captchafield"> 
    <noscript>Security field; please leave this blank</noscript> 
    <input type="text" name="captcha" value="" /> 
</div> 

ASP

Dim captcha 

captcha = Request.Form("captcha") 

If captcha <> "" Then 
    Response.Redirect("badcontent.asp") 
End If 

' continue 

您可以使用哪些JavaScript來是隱藏的驗證碼字段和/或顯示一條消息,讓用戶知道不要往裏面如果他們的JavaScript關閉(參見上面示例代碼中的<noscript>))。機器人/腳本將忽略警告並填寫該字段並觸發您的陷阱。