Ważne: interfejs API reCAPTCHA w wersji 1.0 nie jest już obsługiwany. Uaktualnij go do wersji 2.0. Więcej informacji
Przewodnik dotyczący reCAPTCHA ASP to prosty sposób na umieszczenie CAPTCHA na stronie ASP, aby powstrzymać roboty przed jego nadużywaniem. Poniższy kod obejmuje interfejs reCAPTCHA API.
Po zarejestrowaniu się kluczy interfejsu API możesz dodać reCAPTCHA do swojej klasycznej witryny ASP, wklejając ten kod u góry strony ASP:
<% recaptcha_challenge_field = Request("recaptcha_challenge_field") recaptcha_response_field = Request("recaptcha_response_field") recaptcha_public_key = "your_public_key" ' your public key recaptcha_private_key = "your_private_key" ' your private key ' returns the HTML for the widget function recaptcha_challenge_writer()
recaptcha_challenge_writer = _ "<script type=""text/javascript"">" & _ "var RecaptchaOptions = {" & _ " theme : 'red'," & _ " tabindex : 0" & _ "};" & _ "</script>" & _ "<script type=""text/javascript"" src=""http://www.google.com/recaptcha/api/challenge?k=" & recaptcha_public_key & """></script>" & _ "<noscript>" & _ "<iframe src=""http://www.google.com/recaptcha/api/noscript?k=" & recaptcha_public_key & """ frameborder=""1""></iframe><>" & _ "<textarea name=""recaptcha_challenge_field"" rows=""3"" cols=""40""></textarea>" & _ "<input type=""hidden"" name=""recaptcha_response_field""value=""manual_challenge"">" & _ "</noscript>" end function ' returns "" if correct, otherwise it returns the error response function recaptcha_confirm(rechallenge,reresponse)
Dim VarString VarString = _ "privatekey=" & recaptcha_private_key & _ "&remoteip=" & Request.ServerVariables("REMOTE_ADDR") & _ "&challenge=" & rechallenge & _ "&response=" & reresponse Dim objXmlHttp Set objXmlHttp = Server.CreateObject("Msxml2.ServerXMLHTTP") objXmlHttp.open "POST", "https://www.google.com/recaptcha/api/verify", False objXmlHttp.setRequestHeader "Content-Type", "application/x-www-form-urlencoded" objXmlHttp.send VarString
Dim ResponseString ResponseString = split(objXmlHttp.responseText, vblf) Set objXmlHttp = Nothing if ResponseString(0) = "true" then 'They answered correctly recaptcha_confirm = "" else 'They answered incorrectly recaptcha_confirm = ResponseString(1) end if end function server_response = "" newCaptcha = True if (recaptcha_challenge_field <> "" or recaptcha_response_field <> "") then server_response = recaptcha_confirm(recaptcha_challenge_field, recaptcha_response_field) newCaptcha = False end if %>
Tak się dzieje, gdy przy wczytywaniu strony ustawiane są zmienne server_response
i newCaptcha
, co pozwala określić jej stan.
Jako szkieletu możesz użyć tego kodu HTML:
<html> <body> <% if server_response <> "" or newCaptcha then %> <% if newCaptcha = False then %> <!-- An error occurred --> Wrong! <% end if %> <!-- Generating the form --> <form action="recaptcha.asp" method="post"> <%=recaptcha_challenge_writer()%> </form> <% else %> <!-- The solution was correct --> Correct! <%end if%> </body> </html>