[PHP/JavaScript]:如何刷新验证码?

发布于 2024-08-08 21:08:18 字数 187 浏览 4 评论 0原文

我以这种方式显示验证码:

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

它附近有一个名为“重新加载”的超链接。我想在不刷新页面的情况下调用该 PHP 文件。可能AJAX也参与其中。请帮忙。

I am showing Captcha in this way:

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

I have a hyperlink named "Reload" near it. I want to recall that PHP file without refreshing my page. Probably, AJAX is involved in it. Please assist.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(10

错爱 2024-08-15 21:08:18

是否有一些带有时间戳或其他内容的参数,以便请求不会被缓存?为什么不将 src 替换为类似的东西(使用 jquery)

$("img#your-selector").attr("src","ReturnCaptcha2.php?_="+((new Date()).getTime()));

Isn't there some parameter with a timestamp or something, so that the request does not get cached? Why not substitute the src with something like (using jquery)

$("img#your-selector").attr("src","ReturnCaptcha2.php?_="+((new Date()).getTime()));
嘴硬脾气大 2024-08-15 21:08:18
<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>
<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>
寄人书 2024-08-15 21:08:18

这是我与 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>

Here is the code I use with 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>
落花随流水 2024-08-15 21:08:18

为什么不使用 http://recaptcha.net/ 来省去这一切的麻烦呢?他们只会为您处理验证码。

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

正如我提到的,它是集成到您的网络应用程序中一点也不困难。尝试一下!

Why not use http://recaptcha.net/ and save yourself the trouble of it all? They will just handle the Captcha for you.

Here is some integration info on PHP and recaptcha:
http://www.google.com/recaptcha/plugins/php

as I mentioned, it is not difficult at all to integrate into your webapp. Give it a try!

飘过的浮云 2024-08-15 21:08:18

也许是这样的:

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

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

我还没有测试过它,而且我也不是 js 大师,所以不确定它是否有效。

Maybe something like:

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

And then add a button with onclick="reloadCaptcha();".

I haven't tested it, and I'm no js guru, so not sure if it will work.

Hello爱情风 2024-08-15 21:08:18

另一种方法可以使用一点ajax..
在刷新按钮上执行以下操作:
onclick=javascript:reloadCaptcha();

在这个 reloadCaptcha 函数中,
调用您的 captcha.php 并更新保存您的验证码的 div
与返回值。
您可以轻松返回 html,然后将其嵌入到 div 中。

one more approach can be use a little ajax..
on your refresh button give the action as:
onclick=javascript:reloadCaptcha();

in this reloadCaptcha function,
give a call to your captcha.php and update the div holding your captcha
with the return value.
you can easily return a html and then embed it in the div.

青春如此纠结 2024-08-15 21:08:18

这是另一张。

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

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();
}

Here is another one.

It creates global variable. Checks for existance.

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();
}
单身情人 2024-08-15 21:08:18

您甚至可以创建链接并在同一分区中重新加载验证码。如果不是问题的话。

输入图像文本

重新加载验证码

You can even make a link and reload your captcha in same division. If it's not a problem.

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

秉烛思 2024-08-15 21:08:18

好吧,我用一个简单的技巧解决了这个问题;
不要将验证码放在 中,而是将其放在
时使用 javascript 重新加载它

并在您需要Javascript 重新加载

function reloadCaptcha()

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

:实际 HTML:

;

它解决了我的问题,
如果我有什么地方错了请纠正我

well i have solved this problem with a simple trick;
instead of putting the captcha in <img> put that in an <iframe>
and use javascript to reload it when u require

Javascript To Reload:

function reloadCaptcha()

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

Actual HTML:

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

it solves my problem,
correct me if i am wrong somewhere

难以启齿的温柔 2024-08-15 21:08:18

@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();
})

@meme:
I use same thing, but with jquery. If you need a few capthcas in one page:

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

And js function:

$('.capcha-refresh').click(function(a){
       $('.captcha').attr('src','/securimage/securimage_show.php?' + Math.random());
       a.preventDefault();
})
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文