1

我正在尝试在我已经构建并运行的 MODx 站点中使用验证码图像。我能够看到验证码图像,但不幸的是验证码脚本无法设置可以在 modx 片段中访问的会话值,因此我无法将其与输入的值匹配。创建图像的脚本位于 modx/assets/captcha/captcha.php。我花了将近 3 天的时间来解决这个问题。我尝试了不同的方法来使其工作。但没有任何效果。有什么解决办法吗??有人来解决这个问题吗?

4

2 回答 2

1

把它放在你的脚本中,如下所示:

//Start the session so we can store what the security code actually is
session_start();
//Set the session to store the security code
$_SESSION["security_code"] = $security_code;

并在检查的片段中:

//Continue the session
session_start();
//Check if the security code and the session value are not blank 
//and if the input text matches the stored text
if ((!empty($_REQUEST["txtCaptcha"]) && !empty($_SESSION["security_code"]))
     && ($_REQUEST["txtCaptcha"] == $_SESSION["security_code"]) ) {
  echo "<h1>Test successful!</h1>";
} else {
  echo "<h1>Test failed! Try again!</h1>";
}

但是,如果您使用 Modx Revolution 更合适的解决方案是使用组件 FormIt ( http://rtfm.modx.com/display/ADDON/FormIt.Examples.Simple+Contact+Page ),带有“Recaptcha”或“Blank”无垃圾邮件字段”

于 2012-08-21T10:39:10.017 回答
1

Formit 有一个验证码 prehook - 你能把那个片段拆开看看他们是怎么做的吗?事实上,为什么不直接使用它而不是自己滚动,它可能会减少相当多的工作。

于 2012-08-21T16:56:56.233 回答