3

我正在尝试帮助一位朋友修改一些旧的 html 代码,以消除垃圾邮件从 Web 表单传递到 Coldfusion 功能。基本上,Web 表单调用 action=add_to_data.cfm。这位朋友想要整合 recaptcha 以减少通过表单的垃圾邮件。我已经让这部分工作并完成了 reCaptcha 验证。问题是我不知道如何调用coldfusion“add_to_data.cfm”动作并传递表单的数据。有很多recaptcha示例显示了一个使用action = mailer.php的例子,但我需要发送表格的数据到coldfusion——“add_to_data.cfm。

原始形式:

<form method="post" action="add_to_data.CFm">
 ....blah, blah, blah ... form contents ...

<input type="submit" value="Please add to my Data />
<form>

现在,在谷歌开发人员 reCaptcha 教程的指导下,我不是直接进入“add_to_data.CFm”,而是弄清楚如何验证 reCaptcha 的唯一方法是将表单操作从“add_to_data.CFm”更改为“ action' 到新创建的“verify_recaptcha.php”,以便可以验证 recaptcha。

<form method="post" action="verify_recaptcha.php">
 ...original form contents ...
        <?php
          require_once('recaptchalib.php');
          $publickey = "your_public_key_goes_here";
          echo recaptcha_get_html($publickey);
        ?>
        <input type="submit" />
<form>

此示例直接来自 Google 开发人员网页,用于使用 verify_recaptcha.php 进行 recpatcha 验证

<?php
  require_once('recaptchalib.php');
  $privatekey = "your_private_key_goes_here";
  $resp = recaptcha_check_answer ($privatekey,
                                $_SERVER["REMOTE_ADDR"],
                                $_POST["recaptcha_challenge_field"],
                                $_POST["recaptcha_response_field"]);

    if (!$resp->is_valid) {
    // What happens when the CAPTCHA was entered incorrectly
       die ("The reCAPTCHA wasn't entered correctly. Go back and try it again." .
       "(reCAPTCHA said: " . $resp->error . ")");

     } else {
     // Your code here to handle a successful verification  

     *** this is where I need gather he form outputs and call add_to_data.CFM
     ***  but HOW??

     }
     ?>

所以我的问题是如何将“数据”发送到 add_to_data.CFm?

我知道在上面的“其他”部分中,我可以得到这样的表单变量:

$name = $_POST['yourname'];
$email = $_POST['email'];
$data = $_POST['data'];
$comments = $_POST['comments'];
$formsub = $_POST['Submit']; 

所以问题是:如何完成向“add_to_data.CFM”提交表单的操作??

提前致谢

4

1 回答 1

1

解决问题的最简单方法是让 CF 验证 reCaptcha。你可以在 google 上找到很多教程,我过去使用的一个是下面的链接。

http://recaptcha.riaforge.org/

这是一个基于标签的实现,我基于我的最后一个实现,所以这确实有效。

否则,如果您真的想让 php 将数据发送到 CF,我想到的最简单的方法是让 php 自动提交表单以将数据传回 CF。您需要一些额外的安全措施来确保没有人劫持表单或试图绕过重新验证码。我强烈建议在所有 CF 中进行验证。

于 2012-11-02T13:44:45.570 回答