0

我用 PHP 制作了自己的验证码类,只是为了学习。没关系,按我的意愿工作。我试图添加一个“刷新图像”按钮,但我不知道该怎么做。

表格代码:

<p><img src="img.php" alt="Captcha!" /></p>

img.php 代码:

<?php
require_once 'captcha.class.php';
$captcha = Captcha::instance(10);
echo $captcha;
?>

__toString 方法:

public function __toString()
{
    ob_start();
    header('Content-Type: image/jpeg');
    imagejpeg($this->drawImage(), null, 100);
    return ob_get_flush();
}

这些代码将输出验证码。我怎样才能刷新这个图像?AJAX 中的东西会很棒!谢谢你。

4

3 回答 3

0

您能否让重新加载对创建新验证码的页面进行 AJAX 调用,并将新创建的结果返回到 DIV 中?

于 2011-02-08T15:50:03.940 回答
0
<html>
<head>
<script type="text/javascript">
    function reload()
    {
        var img = new Image();
        img.src = 'img.php';
        var x = document.getElementById('captcha');
        x.src = img.src;
    }
</script>
</head>
<body>
<a href="javascript: reload()" >Reload</a>
<img src="img.php" alt="Captcha!" id="captcha" />
</body>
</html>

也许平原x.src = 'img.php'可以解决问题,但只是为了确保它得到一个新的请求,我已经使用另一个图像(它也为您提供了更多搜索/学习)。

于 2011-02-08T15:59:24.170 回答
0

表格完成后,您如何检查验证码是否正确?会话变量?

如果它是单个会话变量,您可以使用纯 JavaScript 刷新图像。在图像 url 的末尾添加一个随机查询字符串可以避免任何缓存问题。

于 2011-02-08T16:02:51.483 回答