문제

이런 식으로 보안 문자를 보여주고 있습니다.

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

근처에 "Reload"라는 하이퍼 링크가 있습니다. 내 페이지를 새로 고치지 않고 해당 PHP 파일을 기억하고 싶습니다. 아마도 Ajax는 그것에 관여하고 있습니다. 도와주세요.

도움이 되었습니까?

해결책

사용하지 않는 이유 http://recaptcha.net/ 그리고 모든 문제를 저장합니까? 그들은 단지 당신을 위해 보안관을 처리 할 것입니다.

다음은 PHP 및 Recaptcha에 대한 통합 정보입니다.http://www.google.com/recaptcha/plugins/php

앞서 언급했듯이 WebApp에 통합하는 것은 전혀 어렵지 않습니다. 시도 해봐!

다른 팁

요청이 캐시되지 않도록 타임 스탬프가있는 매개 변수가 없습니까? SRC를 (jQuery 사용)와 같은 것으로 대체하지 않겠습니까?

$("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>

SecureAmage 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 전문가가 아니므로 그것이 작동하는지 확실하지 않습니다.

한 가지 더 접근 방식은 작은 ajax를 사용할 수 있습니다. 새로 고침 버튼에서 다음과 같은 작업을 제공합니다.

이 Reloadcaptcha 함수에서 Captcha.php에 전화를 걸고 CARTCHA를 보유한 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 :

function reloadCaptcha()

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

실제 HTML :

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

그것은 내 문제를 해결하고, 내가 어딘가에 틀렸다면 나를 수정합니다.

@나 나:나는 같은 것을 사용하지만 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