我正以这种方式展示Captcha:

<img src="ReturnCaptcha2.php" alt="CAPTCHA" width="100" height="50">

我有一个名为<!>的超链接“;重新加载<!>”;靠近它。我想回忆一下PHP文件没有刷新我的页面。也许,AJAX参与其中。请协助。

有帮助吗?

解决方案

为什么不使用 http://recaptcha.net/ 并省去这一切的麻烦?他们会为你处理Captcha。

以下是PHP和recaptcha的一些集成信息: http://www.google.com/recaptcha/plugins/php

正如我所提到的,集成到您的webapp并不困难。试一试!

其他提示

是不是有一些带有时间戳的参数,所以请求不会被缓存?为什么不用(使用jquery)

之类的东西替换src
$("img#your-selector").attr("src","ReturnCaptcha2.php?_="+((new Date()).getTime()));
<a href="javascript:;" title="Reload Image" 
   onclick="document.getElementById('captcha').src = 'cimage.php?' + Math.random(); 
   return false">
   <img src="cimage.php" alt="Enter captcha" title="Enter captcha" id="captcha"/>
</a>

这是我在Secureimage PHP Captcha中使用的代码。

<form method="POST">
<input type="hidden" name="PHPSESSID" value="0b21dde61d891cd" />
<img id="siimage" src="securimage_show.php?sid=2ef186788e" alt="CAPTCHA Image" width="126" height="36" /><br />
<input type="text" name="code" /><br />
<a href="#" onclick="document.getElementById('siimage').src = 'securimage_show.php?' + Math.random(); return false">Reload Image</a>
<input type="submit" value="Submit Form" />
</form>

可能是这样的:

function reloadCaptcha()
{
img = document.getElementById('captcha');
img.src = 'ReturnCaptcha2.php';
}

然后添加一个带有onclick="reloadCaptcha();"的按钮。

我没有测试过,我不是js guru,所以不确定它是否会起作用。

另一种方法可以使用一点ajax .. 在您的刷新按钮上将操作指定为: 的onclick = JavaScript的:reloadCaptcha();

在这个reloadCaptcha函数中, 给你的captcha.php打电话,并更新持有验证码的div 带有返回值。 你可以轻松返回一个html,然后将其嵌入div中。

这是另一个。

它创建全局变量。检查是否存在。

function get_captcha(){
    //get original url refresh
    console.log('captcha requested.');
    if(typeof window.captcha_src === 'undefined'){
        window.captcha_src = document.getElementById('captcha').src;
    }
    document.getElementById('captcha').src = window.captcha_src + '&nocache=' + Math.random();
}

您甚至可以在同一个部门中建立链接并重新加载验证码。如果这不是问题。

Enter Image Text <input name="captcha" type="text"> <img src="captcha.php" /><br> <a href="captcha.php">Reload Captcha</a><br/>

我用一个简单的技巧解决了这个问题; 而不是将验证码放入<img>将其放入<iframe> 并在需要时使用javascript重新加载

Javascript To Reload:

function reloadCaptcha()

{
document.getElementById('cap').src='captcha.php';
}

实际HTML:

<iframe id="cap" src="captcha.php"></iframe> <input type="button" value="reload" onclick="reloadCaptcha();"/>

它解决了我的问题, 如果我错了,请纠正我

<强> @meme: 我用同样的东西,但用jquery。如果您在一个页面中需要一些capthcas:

<img class="captcha" src="/securimage/securimage_show.php" alt="CAPTCHA Image">
<a class="capcha-refresh" href="#" ><img src="/images/Refresh-icon.png"></a>

和js功能:

$('.capcha-refresh').click(function(a){
       $('.captcha').attr('src','/securimage/securimage_show.php?' + Math.random());
       a.preventDefault();
})
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top