Nu ved jeg ikke hvor i processen du befinder dig, men til at starte med skal du oprette en api-key på google, så du adgang til re-captcha-funktionen.
Så sætter du din re-captcha ind; feks.:
<div class="g-recaptcha" data-sitekey="xxxxxxXxxxxXxxXXxxxxx0000xX">
Før re-cap har jeg sat en asp-snip ind som kigger i en session jeg har lavet i action-filen (du kan lave en 2 steps action, som sender dig videre til dit cgi-script, hvis det er det du har brug for).
Personligt laver jeg altid al validering serverside, i form-action-filen, og sender det bagefter videre til "hvad det nu er jeg vil"
Hos mig ser min asp-snip sådan ud (der er også lidt error-handling i den:
<%
if session("recap")=1 Then
session("recap")=0
%>
<div style="color:red" class="left-align" id="err-comment">Er du en robot?<br></div>
<% End if
%>
Jeg benytter: method="post til min form.
I action-filen laver jeg al validering på felterne, samt om re-captcha er udfyldt.
Re-captcha-valideringen ser sådan ud:
<%
If Request.ServerVariables("REQUEST_METHOD") = "POST" Then
Dim recaptcha_secret, sendstring, objXML
' Secret key
recaptcha_secret = "xxxxxxXxxxxXxxXXxxxxx0000xX"
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 objXML.responseText
ResponseString = objXML.responseText
If instr(ResponseString, "success" & chr(34) &": true")>0 then
recaptchagood="Yes"
session("ok")=1
end if
Set objXML = Nothing
End If
%>
Og nedenstående her til at sende brugeren tilbage til formmailen hvis re-captcha ikke blev gennemført.
<% If NOT recaptchagood="Yes" Then
session("recap")=1
Response.redirect "default.asp#contact"
End If
%>
Du kan gemme dit formindhold i nogen sessions, eller hvad du nu lyster og så sende indholdet videre til dit CGI-script nu.
Husk at sætte din egen API-key ind alle steder i stedet for: xxxxxxXxxxxXxxXXxxxxx0000xX
Håber dette kan hjælpe dig lidt.