0

学ぶために、PHPで独自のcaptchaクラスを作成しました。大丈夫です、思い通りに働いています。「画像の更新」ボタンを追加しようとしましたが、その方法がわかりません。

フォームコード:

<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 に答える