【问题标题】:PHP:Problem with captchaPHP:验证码问题
【发布时间】:2023-11-10 22:30:02
【问题描述】:

我在 PHP 中有一个用户注册表单。我在页面中放置了验证码图像检查。我是这样使用它的

//img id="imgCaptcha" src="create_image.php"//

在我的 javascript 中,我想用图像中生成的相同数字(来自 create_image.php 页面)来验证它。该数字也在会话变量中设置。但是当我从 SESSION 获得号码时,我得到了前一个生成的号码。但是当我发布该页面时,我得到了由 SESSION 的 create_image.php 生成的正确的号码。

那么,如何在不从 SESSION 发布该页面的情况下获取最近生成的号码?

【问题讨论】:

  • 我并不完全清楚发生了什么。也许如果您添加了保存/读取会话变量的代码的简短版本,可能会更容易理解正在发生的事情。
  • 附注:验证码验证和 Javascript 不能一起工作,因为 javascript 运行客户端。这意味着“解决方案代码”存在于客户端计算机上,并且可以简单地从源代码中复制 -> 这使得验证码完全无用。

标签: php captcha


【解决方案1】:

问题是在将代码发布到客户端后加载带有图像的 php 页面,因此当您尝试从会话中输出数字时,您会得到您描述的结果。

在我看来,有树解决方案:

  • 改为在您的代码中为表单生成代码,然后让 create_image.php 脚本输出它。
  • 使用 ajax:调用 create_image.php 后,您可以使用 ajax 从会话中获取号码。
  • 使用现有的验证码服务,例如http://recaptcha.net/

【讨论】: