提供一組現成的驗證碼元件(imgchk 資料夾),包含驗證碼圖片產生、Session 儲存、前端顯示與後端驗證,可直接套用於會員註冊、留言板、登入表單等。
imgchk/
├── validatecode.asp ' 產生驗證碼圖片並寫入 Session
├── validatebody.fix ' 圖片繪製核心邏輯
└── validatehead.fix ' HTTP 標頭設定
將 imgchk 資料夾完整放置於需加入驗證碼的頁面同層目錄(如 /cnbruce/imgchk/)。
<!-- 顯示驗證碼圖片 -->
<img src="imgchk/validatecode.asp" id="vcode" onclick="this.src='imgchk/validatecode.asp?'+Math.random()" style="cursor:pointer" title="點擊更換" />
<br>
<input type="text" name="validatecode" size="10" maxlength="4" placeholder="輸入驗證碼" />
技巧:onclick 事件加入隨機參數,點擊即可刷新驗證碼,無需重整頁面。
<%
If Trim(Request.Form("validatecode")) = "" Or _
Trim(Session("cnbruce.com_ValidateCode")) <> Trim(Request.Form("validatecode")) Then
Response.Write "請正確輸入驗證碼"
Response.End
End If
' 驗證通過,繼續後續邏輯...
%>
若需變更 Session 變數名(預設 cnbruce.com_ValidateCode),需修改兩處:
imgchk/validatecode.asp 內所有 cnbruce.com 字串。Session("cnbruce.com_ValidateCode")。原因:伺服器 ADODB.Stream 或 FileSystemObject 元件被停用。
ADODB.Stream:regsvr32 "C:\Program Files\Common Files\System\ado\msado15.dll"FSO:regsvr32 /u scrrun.dll && regsvr32 scrrun.dll瀏覽器隱私設定過高會阻擋 Session Cookie。建議訪客將隱私等級設為「中」或將網站加入信任清單。
// 前端 jQuery 範例
$.post("check_code.asp", {code: $("#validatecode").val()}, function(res){
if(res=="ok"){ $("#form").submit(); }
else{ alert("驗證碼錯誤"); $("#vcode").click(); }
});
避免整頁重新載入,提升使用者體驗。