2017-03-16 4 views
1

Ich habe CaptchMe auf meiner Website hinzugefügt.
Screenshot.Wie entferne ich ein Captcha?

Screenshot

Das Problem ist, dass es nur 1 CaptchMe auf der gleichen Seite sein kann. Die Seitenleiste ist auf jeder Seite enthalten.

Die Lösung im Entfernen der Captcha in der Seitenleiste, wenn die Seitenleiste geschlossen ist, und das Capcha auf der Seite angezeigt wird. Wenn die Seitenleiste mit einem Klick geöffnet ist, muss das Captcha auf der Seite entfernt und das Capcha auf der Seitenleiste angezeigt werden.

Wie kann ich es tun?

das Captcha anzuzeigen, ich

<?php echo captchme_generate_html($publicKey, $error, $ssl, $customAttributes); ?>

verwenden, wenn ich es in einem div hinzufügen, ich

den Inhalt mit

document.getElementById("captcha").innerHTML = "";
entfernen

Aber wenn die Sidebar geschlossen ist, kann ich sie nicht mehr anzeigen, weil das Div leer ist. Und ich kann nicht tun

document.getElementById("captcha").innerHTML = "<?php echo captchme_generate_html($publicKey, $error, $ssl, $customAttributes); ?> ";

Da dies unmöglich ist.

Vielen Dank für die Hilfe.

+3

Warum Sie nicht so etwas wie recaptcha verwenden, unterstützen mehrere Captchas auf einer Seite? https://developers.google.com/recaptcha/docs/display – Styphon

+2

Weil Recaptcha kein Geld geben: P – jejedu67

+0

Es ist für die Frage nicht relevant, aber ... Hinzufügen eines Captcha zu einem Anmeldeformular, nur um ein paar Cent zu bekommen ist so böse xD –

Antwort

0

Um das Captacha neu zu generieren, sollten Sie in der Lage sein, das Captcha PHP in eine eigene Datei auf dem Server zu legen. Verwenden Sie dann JQuery .load() für die PHP-Datei, um einen AJAX-Aufruf auszuführen und den Antwort-HTML-Code direkt in das DOM zu laden.

http://api.jquery.com/load/

+0

Danke, das ist eine sehr gute Idee. Die Seitenleiste wird mit einer JavaScript-Funktion entfernt. Aber wie funktioniert die Ajax-Funktion mit der Javascript-Funktion? Für exemple, Funktion closeSideBar() { -Code der Seitenleiste -Code zu entfernen, die Ajax-Funktion, die den PHP-Skript in den div hinzufügen ausführen} – jejedu67

+0

$ (document) .ready (function() { $ ("span"). click (function() { $ ("# captcha"). load ("captchme.php"); }); }); \t Funktion closeNav() { \t document.getElementById ("captcha"). InnerHTML = ""; \t document.getElementById ("mySidenav"). Style.width = "350px"; } Es führt die Ajax-Funktion, wenn ich auf einen Bereich klicke, aber wie die Ajax-Funktion ausführen, wenn closeNav() ausgeführt wird? – jejedu67

0

Ich habe eine sehr einfache Lösung nach 5 Stunden gefunden habe ... ich hinzufügen, das Anmeldeformular mit einem iframe in der Seitenleiste und das anderen Captcha (links) in direkt auf der Seite.

Die Hauptseite ist eine Seite und der Iframe eine andere Seite.

Und ich kann 2 CaptchMe auf der gleichen Seite hinzufügen :)

Vielen Dank für die Hilfe, ich lerne ein weiteres Element in jQuery :)

+0

Das ist mehr wie ein Hack als eine Lösung. Nur Barbaren verwenden Iframes für Inhalte, die sich innerhalb derselben Domäne befinden. – Havenard