[PHP / JavaScript]:如何刷新Captcha?
-
06-07-2019 - |
题
我正以这种方式展示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();
})