Frage

Ich zeige Check Captcha auf diese Weise:

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

Ich habe einen Hyperlink namens „Reload“ in der Nähe. Ich möchte, dass PHP-Datei erinnern, ohne meine Seite zu aktualisieren. Wahrscheinlich wird AJAX daran beteiligt. Bitte unterstützen.

War es hilfreich?

Lösung

Warum nicht http://recaptcha.net/ und sparen Sie sich die Mühe, das alles? Sie werden nur den Captcha Griff für Sie.

Hier finden Sie einige Integrations Informationen über PHP und recaptcha: http://www.google.com/recaptcha/plugins/php

Wie bereits erwähnt, ist es nicht schwer überhaupt in Ihre Webapp zu integrieren. Probieren Sie es aus!

Andere Tipps

Gibt es nicht einige Parameter mit einem Zeitstempel oder etwas, so dass die Anforderung nicht zwischengespeichert bekommt? Warum nicht ersetzen die src mit so etwas wie (mit 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>

Hier ist der Code, den ich mit Securimage PHP-Check Captcha verwenden.

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

Vielleicht so etwas wie:

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

Und dann eine Schaltfläche mit onclick="reloadCaptcha();" hinzufügen.

Ich habe es nicht getestet, und ich bin kein js Guru, also nicht sicher, ob es funktionieren wird.

Man kann mehr Ansatz ein wenig Ajax benutzen .. geben auf Refresh-Button die Aktion als: Onclick = javascript: reloadCaptcha ();

in dieser reloadCaptcha Funktion, geben einen Anruf zu Ihrem captcha.php und aktualisieren Sie die div halten Ihre Captcha mit dem Rückgabewert. Sie können leicht eine html zurückkehren und banden mich dann in der div.

Hier ist ein anderer.

Es schafft globale Variable. Prüft auf Existenz.

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

Sie können auch einen Link machen und Ihre captcha in derselben Abteilung neu zu laden. Wenn es kein Problem.

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

Nun, ich habe dieses Problem mit einem einfachen Trick gelöst; stattdessen das Captcha in <img> das Setzen gesetzt, dass in einem <iframe> und verwenden Sie Javascript es neu zu laden, wenn u benötigen

Javascript neu zu laden:

function reloadCaptcha()

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

Die tatsächliche HTML:

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

es mein Problem löst, korrigieren Sie mich, wenn ich falsch bin irgendwo

@meme: Ich benutze Gleiche, aber mit jquery. Wenn Sie ein paar capthcas auf einer Seite:

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

Und js Funktion:

$('.capcha-refresh').click(function(a){
       $('.captcha').attr('src','/securimage/securimage_show.php?' + Math.random());
       a.preventDefault();
})
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top