在经典ASP

时间:2015-06-17 10:52:32

标签: captcha

我在经典asp中从谷歌实施ReCaptcha时遇到了问题。 Captcha显示在我的表单之下,但是当我提交表单时,即使验证码字段留空或错误,它也始终被接受。

这是我在第一个“表单”页面中使用的代码。 就在页面顶部我就是这样:

    <%
  recaptcha_challenge_field  = Request("recaptcha_challenge_field")
  recaptcha_response_field   = Request("recaptcha_response_field")
  recaptcha_public_key       = "mykeyofcourse" ' your public key
  recaptcha_private_key      = "and here the private one" ' 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"">" & _

“”

  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

   %>

在我的表单中,在提交按钮上方,我有这段代码:

  <%=recaptcha_challenge_writer()%>

现在到检查表单的ASP页面。 在页面顶部,我有这个:

如果server_response&lt;&gt; “或”newCaptcha然后     ERREUR = “OUI” 其他     ERREUR = “非” 结束如果

response.write“erreur:”&amp; erreur

但是......无论验证码字段的价值是多少,erreur总是=非。 知道我做错了什么

提前致谢

0 个答案:

没有答案
相关问题