Я в основном хочу выполнить проверку на стороне сервера, а затем отправить данные формы в URL-адрес. Мой Google Foo не хватает, поскольку я не нашел реальных примеров этого.Форма recaptcha ColdFusion и проверка сервера
Вот что у меня есть до сих пор, но, возможно, я ошибаюсь.
<!doctype html>
<html lang="en">
<head>
<title>Untitled</title>
<script src="https://www.google.com/recaptcha/api.js" type="text/javascript"></script>
<script type="text/javascript">
var noRobot = function(response){
document.getElementById("sub").disabled = false;
}
</script>
</head>
<body>
<!-- Form Post -->
<CFIF CGI.Request_method IS "post">
<!-- Sends the recaptcha token to Google to verify -->
<cfinvoke component="/components/recaptcha" method="isRecaptchaGood" returnvariable="isGood">
<!-- Only post data if valid recapthca -->
<CFIF isGood>
<p>Good Recaptcha</p>
<!---
How do I foward on all the form data to the API?
// <cfhttpparam type="CGI" value="cgivar " name="mycgi">
// <cfhttp method="Post" url="http://myapi.com/api/users">
--->
<CFEXIT>
<CFELSE>
<p>Bad Recaptcha</p>
</CFIF>
</CFIF>
<CFOUTPUT>
<!---
I used to just post the data to the API, but now I first need to validate the recaptcha response on the server
<form action="http://myapi.com/api/users" method="post">
--->
<form action="#CGI.Script_Name#" method="post">
Name: <input type="text" name = "user" />
<CFIF Application.recaptcha.enabled>
<!--- A simple wrapper around generating the recaptcha div with the appropriate key --->
<cfinvoke component="/components/recaptcha" method="makeRecaptcha">
</CFIF>
<button type="submit" id="sub" name="con" disabled="disabled">Continue</button>
</form>
</CFOUTPUT>
</body>
</html>
Как отказ от ответственности, у меня есть около 6 часов опыта ColdFusion, поэтому я предполагаю, что мне не хватает чего-то простого.
Форма редактировать значения:
<body>
<cfparam name="form.user" type="string" default="">
<cfparam name="form.amount" type="string" default="">
<form action="#CGI.Script_Name#" method="post">
User: <input type="text" name="user" value="#form.user#" />
Amount: <input type="number" name="amount" value="#form.amount#" />
</form>
</body>
Что на самом деле происходит, когда вы запускаете этот код? –
Я завершаю recaptcha, отправлю форму, и она переходит в '' как и ожидалось. Но тогда мне нужно повторно опубликовать все значения формы 'form.user' в этом случае в API. В реальном приложении явно больше, чем просто значение одной формы. –
MisterIsaak
Похоже, вы определили соответствующие теги. У вас их в неправильном порядке, и они прокомментированы, но вы, несомненно, оказались на правильном пути. Чтобы передать значения формы в параметры http, просто поместите 'value = '# form.user #" 'в тэг cfhttpparam. –