2016-07-01 13 views
0

Ich brauche Hilfe bei der Reaktion von ReCaptcha in Javascript-Validierung Validierung, die wie für andere Validierungen gemacht wird, n-Feld ist leer etc ..Validierung reCaptcha in JavaScript-Funktion, die auf submit aufgerufen werden. (ASP classic)

Die Javascript-Funktion function verify(f) {....} auf onSubmit="return verify(this);" in html aufgerufen <form name="form2" method="POST" action="alink.asp" onSubmit="return verify(this);">

Bellow ist die komplette js Funktion:

function verify(f) { 
    var msg = ''; 
    var s = f.CKRoutingNumber.value; 
    s = s.replace(/[^0-9]/gi, ""); 
    f.CKRoutingNumber.value = s; 
    if (f.CustomerID.value == '') { msg = 'Please enter your Bricks R Us Customer ID.'; f.CustomerID.focus(); } 
    else if (f.PurchaseOrderNumber.value == '') { msg = 'Please enter the purchase order number.'; f.PurchaseOrderNumber.focus(); } 
    else if (f.Amount.value == '') { msg = 'Please enter the amount you wish to pay.'; f.Amount.focus(); } 
    else if (f.CKBankName.value == '') { msg = 'Please enter a value into the Bank Name field.'; f.CKBankName.focus(); } 
    else if (f.CKRoutingNumber.value == '') { msg = 'Please enter a value into the Routing Number field.'; f.CKRoutingNumber.focus(); } 
    else if (s.length != 9) { msg = 'Please enter a valid nine-digit routing/transit number.'; f.CKRoutingNumber.focus(); } 
    else if (f.CKAccountNumber.value == '') { msg = 'Please enter a value into the Account Number field.'; f.CKAccountNumber.focus(); } 
    else if (f.CKNumber.value == '') { msg = 'Please enter a value into the Check Number field.'; f.CKNumber.focus(); } 
    else if (f.BillingName.value == '') { msg = 'Please enter a value into the Full Name field.'; f.BillingName.focus(); } 
    else if (f.BillingAddress.value == '') { msg = 'Please enter a value into the Billing Address field.'; f.BillingAddress.focus(); } 
    else if (f.BillingCity.value == '') { msg = 'Please enter a value into the Billing City field.'; f.BillingCity.focus(); } 
    else if (f.BillingState.value == '') { msg = 'Please select a value for the Billing State field.'; f.BillingState.focus(); } 
    else if (f.BillingZIPCode.value == '') { msg = 'Please enter a value into the Billing ZIP Code field.'; f.BillingZIPCode.focus(); } 
    else if (f.BillingPhone.value == '') { msg = 'Please enter a value into the Phone Number field.'; f.BillingPhone.focus(); } 
    if (msg != '') { 
    alert(msg); 
    return false; 
    } 
} 

die obige Funktion auf der gleichen Seite ist, in dem die Form hergestellt ist.

Bellow ist der klassische ASP-Code, die Antwort von ReCaptcha erhalten. Es ist auch auf der gleichen Seite

<% 

Dim reresponse 
reresponse= Request.form("g-recaptcha-response") 

Dim VarString 
VarString = _ 
      "?secret=6Lex3CMTAAAAAASVS5XnIq4Ya5ZGvEH_W70NU&amp;" & _ 
      "&response=" & reresponse & _ 
    "&amp;&remoteip=" & Request.ServerVariables("REMOTE_ADDR") 

Dim url 
url="https://www.google.com/recaptcha/api/siteverify" & VarString 

    Dim objXmlHttp 
    Set objXmlHttp = Server.CreateObject("Msxml2.ServerXMLHTTP") 

    objXmlHttp.open "POST", url, False 
    objXmlHttp.setRequestHeader "Content-Type", "application/x-www-form-urlencoded" 
    objXmlHttp.send 

    Dim ResponseString 
    ResponseString = objXmlHttp.responseText 
    Set objXmlHttp = Nothing 

If instr(ResponseString, "success" & chr(34) &": true")>0 then 
// do nothing 
else 
// Here I want to get this response message and validate it in the above javascript function. 

end if 
%> 

Ich bin verwirrt, dass, wie kann ich die Antwort von asp und bestätigen Sie in der verify(f) Javascript-Funktion erhalten, so dass ich auch Warnmeldung Taste erhalten anschließend auf, dass die recaptcha erforderlich ist und oder falsch.

Meine Absicht ist es, die reCaptcha Antwort in denselben veryify JavaScript-Funktion, die anschließend auf und zeigt die Validierung in alert()

Denken Sie daran, sowohl ASP-Code und JavaScript-Code in der gleichen Seite aufgerufen zu validieren.

Bitte fragen Sie, wenn Sie auch meine Form HTML-Code benötigen

+0

Denken Sie daran, dass VBScript und JavaScript "auf der gleichen Seite" sind irrelevant: Das VBScript läuft auf dem Server, während das JavaScript vom Client (dem Browser) ausgeführt wird. – Martha

Antwort

0

Ihre verify() Funktion lokal ausgeführt wird und einige Eingabewert Prüfung tun/Alarmierungs ist in Ordnung, aber in jedem Fall sollten Sie prüfen, was aus dem Browser kommt auf de Server Seite. Wenn Sie die ReCaptcha-Antwort an diese verify() -Funktion zurücksenden, unterminieren Sie Ihre Sicherheit, weil Ihre Benutzer diese verify() -Funktion einfach ändern könnten ...