استفاده از reCAPTCHA با کلاسیک ASP

مهم : نسخه 1.0 reCAPTCHA API دیگر پشتیبانی نمی‌شود، لطفاً به نسخه 2.0 ارتقا دهید. بیشتر بدانید

راهنمای reCAPTCHA ASP یک راه ساده برای قرار دادن یک CAPTCHA در صفحه ASP ارائه می دهد و به شما کمک می کند ربات ها از آن سوء استفاده نکنند. کد زیر ReCAPTCHA API را می‌پیچد.

بعد از اینکه برای کلیدهای API خود ثبت نام کردید، می توانید reCAPTCHA را به سایت ASP کلاسیک خود با چسباندن کد زیر در بالای صفحه 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 %>

آنچه در اینجا اتفاق می افتد این است که متغیرهای server_response و newCaptcha هر زمان که صفحه بارگذاری می شود تنظیم می شود و به شما امکان می دهد وضعیت صفحه خود را تعیین کنید.

می توانید از 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>

ادامه مطلب

  • سفارشی کردن ظاهر و احساس
  • نکات و رهنمودها
  • عیب یابی