Asp classic 如何在ASP Classic中实现Google Recaptcha 2.0?
我需要帮助来实现Google Recaptcha 2.0的答案 我尝试了几种方法来恢复发送表单后的响应,但没有得到正确的答案 下面是我正在尝试的示例:Asp classic 如何在ASP Classic中实现Google Recaptcha 2.0?,asp-classic,Asp Classic,我需要帮助来实现Google Recaptcha 2.0的答案 我尝试了几种方法来恢复发送表单后的响应,但没有得到正确的答案 下面是我正在尝试的示例: recaptcha_secret = "example45454sasa" sendstring = _ "https://www.google.com/recaptcha/api/siteverify?" & _ "secret=" & recaptcha_secret & _ "&response=" &a
recaptcha_secret = "example45454sasa"
sendstring = _
"https://www.google.com/recaptcha/api/siteverify?" & _
"secret=" & recaptcha_secret & _
"&response=" & request.form("g-recaptcha-response")
Set objXML = Server.CreateObject("MSXML2.ServerXMLHTTP")
objXML.Open "GET", sendstring , false
objXML.Send()
if instr(objXML.responseText,"true") then
response.write "yes"
else
response.write "no"
end if
使用aspJSON1.17.asp库的第二个exmeplae wehre I:
recaptcha_secret = "example45454sasa"
Set oJSON = New aspJSON
jsonstring = "https://www.google.com/recaptcha/api/siteverify?secret=" & recaptcha_secret & "&response=" & request.form("g-recaptcha-response") & ""
'Load JSON string
oJSON.loadJSON("" & jsonstring & "")
'Get single value
Response.Write oJSON.data("success") & ""
上面的两个示例返回False或No
我如何实现一种方法来检查是否标记了Recaptcha
谢谢你的关注
对于我的示例中的Zam,屏幕上显示的响应为:
Response: { "success": false, "error-codes": [ "invalid-input-secret" ] }
我相信这应该是“真实的”,因为我回答的问题是正确的
您可以测试:bit.ly/1R1cbEs我看不出您是如何发送请求的 无论如何,下面是我的测试网站的网站密钥的工作示例。当然,您应该提供自己的“密钥”和“数据站点密钥” 现场样品: 文件名:GoogleCaptcha.asp
<%@LANGUAGE=VBSCRIPT%>
<%
Option Explicit
%>
<html>
<head>
<script src="https://www.google.com/recaptcha/api.js" async defer></script>
</head>
<body>
<h4>http://stackoverflow.com/questions/30711884/how-to-implement-google-recaptcha-2-0-in-asp-classic/30735079</h4>
<%
If Request.ServerVariables("REQUEST_METHOD") = "POST" Then
Dim recaptcha_secret, sendstring, objXML
' Secret key
recaptcha_secret = "6LfUUwgTAAAAAMQy5tz9u1BMSnCQV1CVh5tuBcEF"
sendstring = "https://www.google.com/recaptcha/api/siteverify?secret=" & recaptcha_secret & "&response=" & Request.form("g-recaptcha-response")
Set objXML = Server.CreateObject("MSXML2.ServerXMLHTTP")
objXML.Open "GET", sendstring, False
objXML.Send
Response.write "<h3>Response: " & objXML.responseText & "</h3>"
Set objXML = Nothing
End If
%>
<form method="post" action="GoogleCaptcha.asp">
<!-- Site key -->
<div class="g-recaptcha" data-sitekey="6LfUUwgTAAAAAAQZPb6j22A2a2tZoAUygdmqpgdv"></div>
<br />
<input type="submit" value="Try">
</form>
</body>
</html>
http://stackoverflow.com/questions/30711884/how-to-implement-google-recaptcha-2-0-in-asp-classic/30735079
在这里,它是一个屠宰场,但如果是从js+vb开始的,但它正在做这个工作:
<script language=JavaScript RUNAT=SERVER src="json2.min.js"></script>
<script language=JavaScript RUNAT=SERVER >
function gResult( jobj ){
if ( JSON.parse( jobj ).success == true ){ return true }else{ return false }
}
</script>
<%
dim secret, objXmlHttp, VarString
secret = "yoursekretcodehere"
VarString = "secret=" & secret &_
"&response=" & Request.Form("g-recaptcha-response") &_
"&remoteip=" & Request.ServerVariables("REMOTE_ADDR")
Set objXmlHttp = Server.CreateObject("Msxml2.ServerXMLHTTP")
if isNull(objXmlHttp) then
Set objXmlHttp = Server.CreateObject("Microsoft.XMLHTTP")
end if
objXmlHttp.open "POST", "https://www.google.com/recaptcha/api/siteverify?" & VarString , False
objXmlHttp.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
objXmlHttp.send
Set objXmlHttp = Nothing
response.write gResult( objXmlHttp.responseText )
函数gResult(jobj){
if(JSON.parse(jobj.success==true){return true}else{return false}
}
经过多次搜索,我终于找到了它
首先我使用这个asp类
然后,为了验证响应,我使用这个
result = (objXML.responseText)
Set oJSON = New aspJSON
oJSON.loadJSON(result)
Set objXML = Nothing
success = oJSON.data("success")
if success = "True" then
action = "go to next page"
else
action = ""
end if
现在使用的代码是:
<%@LANGUAGE=VBSCRIPT%>
<%
Option Explicit
%>
<html>
<head>
<script src="https://www.google.com/recaptcha/api.js" async defer></script>
</head>
<body>
<!-- #include file="aspJSON.asp"-->
<%
If Request.ServerVariables("REQUEST_METHOD") = "POST" Then
Dim recaptcha_secret, sendstring, objXML
' Secret key
recaptcha_secret = "XXXCCCXXXX"
sendstring = "https://www.google.com/recaptcha/api/siteverify?onload=onloadCallback&render=explicit&secret=" & recaptcha_secret & "&response=" & Request.form("g-recaptcha-response")
Set objXML = Server.CreateObject("MSXML2.ServerXMLHTTP")
objXML.Open "GET", sendstring, False
objXML.Send
dim result, oJSON, success, action, errorCapatcha, errorMsg
result = (objXML.responseText)
Set oJSON = New aspJSON
oJSON.loadJSON(result)
Set objXML = Nothing
success = oJSON.data("success")
if success = "True" then
action = "go to next page"
else
action = "do nothing"
end if
END If
%>
<form method="post" action="">
<!-- Site key -->
<div class="g-recaptcha" data-sitekey="XXXXXXXXX"></div>
<br />
<input type="submit" value="Try">
</form>
</body>
嗨,扎姆!你的代码也不起作用。答案和我的一样,你能再帮我一次吗?您可以测试:我认为问题在这里:&response=“&Request.form”(“g-recaptcha-response”)非常奇怪,即使使用我的代码,您仍然有错误。可能您提供的密钥不正确吗?事实上,不仅显示了错误,而且没有显示是否回答了问题,并显示相同的结果:response:{“success”:false错误代码“:[“无效输入密码”]}google.com/recaptcha/api.js?hl=tr(语言tr/turkish)请用live sample检查我的更新答案。我用链接签出了你的代码片段…提交的消息中有“哈哈”“以及所有其他代码段。你在分享恶意代码吗mate???@Gcamara14如果你第一次读到我的评论,我说我在多次搜索后发现了它,我没有说它是我的代码,我写这篇文章只是为了帮助你,而不是说它是我的代码:)