2009-10-27 214 views
0

我顯示驗證碼以這樣的方式[PHP/JavaScript的]:如何刷新驗證碼?

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

我有一個名爲「刷新」靠近它的超鏈接。我想回顧一下PHP文件,而不刷新我的頁面。可能是AJAX參與其中。請協助。

+0

你用jQuery嗎? – chchrist

+0

添加了更多相關標籤 – Jakub

回答

1

爲什麼不使用http://recaptcha.net/,並保存自己的這一切的麻煩?他們只會爲你處理驗證碼。

下面是一些用PHP集成信息和驗證碼: http://www.google.com/recaptcha/plugins/php

正如我所說,這是不難在所有集成到你的web應用。試一試!

+0

我試過了,但發現很難使它工作。 – RKh

+0

它非常容易,他們使它1單一包括你做出輸出。你有什麼麻煩?你做了一個包括,你提供你的recaptcha獨特的關鍵。 – Jakub

+0

@Jakub:我有問題爲URL設置密鑰。 – RKh

2

下面是代碼我用Secureimage PHP驗證碼。

<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> 
+0

Upvote for free JavaScript without jQuery – Ergec

0

也許是這樣的:

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

,然後添加與onclick="reloadCaptcha();"一個按鈕。

我沒有測試它,我不是JS大師,所以不知道是否會工作。

3

是不是有一些參數與時間戳或什麼的,所以該請求沒有得到緩存?爲什麼不喜歡的東西(使用jQuery)

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

...感謝節省晚上;-) – vector

+0

它工作正常... – Vaishu

0

多了一個方法可以是使用一個小阿賈克斯的刷新按鈕替代SRC .. 給行動: 的onclick = JavaScript的:reloadCaptcha();

在此reloadCaptcha功能

, 給你captcha.php調用和更新DIV牽着你的驗證碼 與返回值。 你可以很容易地返回一個html,然後嵌入到div中。

-2

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

以及我已經解決了這個問題,一個簡單的技巧; 而不是把驗證碼在<img>提出,在一個 和使用JavaScript來重新加載它當u需要

JavaScript來刷新:

function reloadCaptcha() 

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

實際HTML:

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

它解決了我的問題, 糾正我,如果我錯了某處

3
<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> 
0

這是另一個。

它創建全局變量。檢查存在。

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

你甚至可以建立一個鏈接並重新加載你的驗證碼在同一個部門。如果這不是問題。

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