0

我正在使用 asp classic,其中我使用recaptcha 2.0,当我使用enctype="multipart/form-data"我的图像上传器工作正常但 recaptcha 响应为false并且当我删除表单标签 recaptcha 上的 enctype="multipart/form-data" 时工作正常但不是图像上传器请帮助我

重新验证方法

If Request.ServerVariables("REQUEST_METHOD") = "POST" Then Dim recaptcha_secret, sendstring, objXML

    ' Secret key
    recaptcha_secret = "secret key"

    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
Dim oJSON,jsonstring,result,data,success
    Set oJSON = New aspJSON

结果 = (objXML.responseText)

Set oJSON = New aspJSON
oJSON.loadJSON(result)

Set objXML = Nothing

success = oJSON.data("success")
if success = "True" then

    TestCaptcha ="True"
else
    TestCaptcha ="False"

end if     
    Set objXML = Nothing
End If
4

1 回答 1

0

Request.form("g-recaptcha-response")发布带有 的表单时不能使用enctype="multipart/form-data",因为 ``Request.Form` 集合不可用。

相反,请使用您的 Upload 组件 DLL 属性(通常form也是如此)。例如,对于 Persists ASPUpload 组件,使用:

Set Uploader = Server.CreateObject("Persits.AspUpload")`
Dim myFormField
myFormField = Uploader.Form("g-recaptcha-response")

然后,您可以使用您的变量myFormField传递给 Google ReCaptcha,如下所示:

sendstring = "https://www.google.com/recaptcha/api/siteverify?secret=" & recaptcha_secret & "&response=" & myFormField
于 2020-07-21T23:54:17.787 回答