これは非常に不気味です。サーバー側で生成されたCAPTCHAイメージをリロードしようとしていますが、ページ全体をリロードしたくないので、AJAXを使用する必要があります。したがって、私が行うことは、最初にサーバー側で(AJAXを使用して)phpファイルをトリガーすることです。これにより、必要なすべてのものが更新され、新しいCAPTCHAイメージを取得できるようになります。次に、これが完了したら、画像src = ""を更新して、そのphpファイルから新しい画像をロードします。ここにコードがあります:
- ファイル1
HTML:
<tr id="rowWithCaptcha">
<td><p><img id="captchaImg" src="./?<?php echo session_name() ?>=<?php echo session_id() ?>"/></p></td>
</tr>
JQuery-スクリプト:
$("#reloadImg").click(function(){
$.ajax({
url: 'getNewKCAPTCHA.php',
cache: false,
type: 'POST',
async: false,
success: function(){
$("#captchaImg").attr("src","http://localhost/Captcha2/TestPages/TestPage3Q/getNewKCAPTCHA.php?");
}
});
});
- ファイル2:
PHP:kcaptcha.phpは、すべてのキャプチャマジックが発生する場所です:)したがって、ブラウザでこのphpファイルを開くだけで、キャプチャ画像自体を取得できます。また、ページをリロードすると、画像は毎回変更されます。
<?php include('kcaptcha.php'); session_start(); $captcha = new KCAPTCHA(); $_SESSION['captcha_keystring'] = $captcha-getKeyString(); echo TRUE; ?>
つまり、奇妙なことに、このすべて(AJAX呼び出しと画像の更新)は新しいChromeブラウザーで問題なく機能しますが、FFOXまたはIEで試してみると、1回しか機能せず、それ以上クリックしても何も変わりません。 .... JQueryの部分と関係があると思いますが、動作させることができません:///
すべての助けに感謝します!!! よろしくお願いします!