Avatar billede hrasbo Praktikant
22. marts 2018 - 16:21 Der er 1 kommentar

Recaptcha i asp på en side

Hej

Jeg skal have Recaptcha til at virke sammen med en standard formmail.
Der kan ikke rettes i formmail.cgi eller andet.

Hvordan får jeg den til at tjekke Recaptcha og bagefter kører formmailen igennem som normalt.

Har fundet denne:
https://www.mrwebmaster.it/asp/recaptcha-v2-classic-asp_12460.html

Men hvordan får jeg kørt, på samme side:
Dim recaptcha_passed
recaptcha_passed = recaptcha_check(Request.Form("g-recaptcha-response"))
' Effettuo un controllo condizionale
If recaptcha_passed = False Then
  ' Errore di validazione ...
Else
  ' Validazione riuscita ...
End If
Avatar billede Hr_Andersen_11 Juniormester
28. august 2018 - 11:15 #1
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.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester