【ASP】建立自己專屬驗證碼(CAPTCHA)

首先,先到 http://www.tipstricks.org/ 造訪,挑選自己喜歡的風格及規則,最後並下載。
如下圖(參考):



接著在網頁上開始引用。
Javascript部分:(此功能為重新產生驗證碼圖片)
<script type="text/javascript" language="javascript">
        function RefreshImage(valImageId) {
            var objImage = document.getElementById(valImageId)
            if (objImage == undefined) {
                return;
            }
            var now = new Date();
            objImage.src = objImage.src.split('?')[0] + '?x=' + now.toUTCString();
        }
</script>


HTML部分:
<img src="/captcha/captcha.asp" id="imgCaptcha" />&nbsp;
<a href="javascript:void(0);" onClick="RefreshImage('imgCaptcha');">Get a new challenge</a><br />
   Write the characters in the image above<br />
<input type="text" name="txtCaptcha" id="txtCaptcha" value="" />


ASP部分:(判斷驗證碼是否輸入正確)
'check CAPTCHA
  if IsEmpty(Session("ASPCAPTCHA")) or Trim(Session("ASPCAPTCHA")) = "" then
        lblResult = "This CAPTCHA has expired."     '驗證碼過期
        response.write "<script type='text/javascript'>alert('" & lblResult &"');</script>"   
     else
       Dim TestValue : TestValue = Trim(Request.Form("txtCaptcha"))
                '//Uppercase fix for turkish charset//
                TestValue = Replace(TestValue, "i", "I", 1, -1, 1)
                TestValue = Replace(TestValue, "I", "I", 1, -1, 1)
                TestValue = Replace(TestValue, "i", "I", 1, -1, 1)
                '////////////////////
                TestValue = UCase(TestValue)
                
                if StrComp(TestValue, Trim(Session("ASPCAPTCHA")), 1) = 0 then
                    lblResult = "CAPTCHA PASSED"   '驗證碼輸入正確         
                else
                    lblResult = "CAPTCHA FAILED"   '驗證碼錯誤
                response.write "<script type='text/javascript'>alert('" & lblResult &"');</script>" 
                end if
                '//IMPORTANT: You must remove session value for security after the CAPTCHA test//
                Session("ASPCAPTCHA") = vbNullString
                Session.Contents.Remove("ASPCAPTCHA")
  end if 

執行畫面:


留言

這個網誌中的熱門文章

【ASP】日期轉換(西元<-->民國)

【VB】使用NPOI元件來匯出Excel--DataTableToExcel

【SQL】符號切割字串變成多欄