Tipps und Tricks zu SEO


ReCaptchaJComments, eine der beliebtesten Kommentar-Erweiterungen für das Content Management System Joomla, verfügt von Haus aus über ein Captcha, um ungewünschten Spam zu vermeiden. Viele möchten jedoch lieber das von Google bereitgestellte ReCaptcha nutzen. Welche Änderungen dazu am Code von JComments notwendig sind, lest Ihr hier.


Die Nachteile des bei JComments mitgelieferten Captchas, dem KCaptcha, sind aus meiner Erfahrung zwei Dinge:

  1.     Es ist nicht sicher. Manche Skripte schaffen es, das Captcha zu umgehen.
  2.     Auf meiner Webseite war es nicht möglich, auf Smartphones das Captcha zu lösen. Selbst bei richtiger Eingabe gab es eine Fehlermeldung.

Googles ReCaptcha ist momentan eines der sichersten Captchas und steht für Nutzer mit einem Google-Konto kostenlos zur Verfügung. Joomla verfügt außerdem ab der Version 2.5 von Haus aus über ein Plugin, um ReCaptcha einzubinden.
Das Problem besteht nur darin, das ReCaptcha auch für JComments zu nutzen, denn hier gibt est erst einmal keine Möglichkeit, weitere Captchas außer dem mitgelieferten KCaptcha einzubinden. Wie es dennoch gelingt, ReCaptcha für JComments zu verwenden, ist in der folgenden Anleitung zu sehen. Diese basiert auf einer spanischen Quelle, die ich im Netz gefunden habe. Leider funktioniert der Link inzwischen nicht mehr.

Aktualisiert: Hier gibt es einen Tipp, wie man JComments mit ReCaptcha 2 nutzen kann.

Bitte beachtet: Es gibt keine Garantie, dass dies auch funktioniert. Mögliche Nebenwirkungen auf Eurer Webseite kann ich nicht ausschließen. Daher solltet Ihr das ganze erst einmal auf einem Testsystem ausprobieren. Immer vorher aus Sicherheitsgründen ein Backup der Webseite erstellen!

Ich gehe von folgenden Systemkomponenten aus:

  • Joomla ab Version 2.5.14
  • JComments in der Version 2.3.0

 

Schritt 1: ReCaptcha einrichten

Um ReCaptcha nutzen zu können, benötigt man ein Google-Konto. Dann lässt sich unter der Adresse https://www.google.com/recaptcha ein Schlüsselpaar erzeugen. Den öffentlichen und den privaten Schlüssel muss man danach im Joomla-Plugin „Captcha – ReCaptcha“ eintragen. Das Plugin muss zudem aktiviert werden.

Plugin "Captcha - ReCaptcha" für Joomla


Im Anschluss ist in der Joomla-Konfiguration unter „Site“ als Standard-Captcha das ReCaptcha auszuwählen.

Captcha-Konfiguration in Joomla


Achtung: Google hat unlängst die URL für die ReCaptcha-API geändert. Daher muss in Joomla gegebenenfalls die Datei plugins/captcha/recaptcha/recaptcha.php angepasst werden:
 Zeile 22  ändern in RECAPTCHA_API_SERVER URL of 'http://www.google.com/recaptcha/api'
 Zeile 24 ändern in RECAPTCHA_VERIFY_SERVER URL of 'www.google.com'
 Zeile 129 ändern in RECAPTCHA_VERIFY_SERVER value of '/recaptcha/api/verify'

 

Schritt 2: JComments anpassen

Jetzt kommt der etwas schwierigere Teil, denn für die Komponente JComments müssen einige Dateien angepasst werden.
In der Datei [JOOMLA]/administrator/components/com_jcomments/admin.jcomments.php gibt es in Zeile 1066 diesen Eintrag:

$captcha[] = JCommentsHTML::makeOption('kcaptcha', 'KCAPTCHA');


Hinter diesen Eintrag folgende Zeile setzen:

$captcha[] = JCommentsHTML::makeOption('recaptcha', 'recaptcha by Gnumla.com');


In der Datei [JOOMLA]/components/com_jcomments/tpl/default/tpl_form.php beginnt dann in Zeile 114 folgender Codeabschnitt: 

if ($this->getVar('comments-form-captcha', 0) == 1) {
$html = $this->getVar('comments-form-captcha-html');
if ($html != '') {
echo $html;
} else {
$link = JCommentsFactory::getLink('captcha');
?>
<p>
    <span>
        <img class="captcha" onclick="jcomments.clear('captcha');" id="comments-form-captcha-image"

src="/<?php echo $link; ?>" width="121"height="60" alt="

<?php echo JText::_('FORM_CAPTCHA'); ?>" /><br />
<span class="captcha" onclick="jcomments.clear('captcha');">

<?php echo JText::_('FORM_CAPTCHA_REFRESH'); ?></span><br />
<input class="captcha" id="comments-form-captcha"

type="text" name="captcha_refid" value="" size="5" tabindex="6" /><br />
</span>
</p>
<?php
}
}
?>


Diesen ersetzen wir durch den folgenden Code:


if ($this->getVar('comments-form-captcha', 0) == 1) {
$html = $this->getVar('comments-form-captcha-html','kcaptcha');
if ($html == 'kcaptcha') {
$link = JCommentsFactory::getLink('captcha');
?>
<p>
<span>
<img class="captcha" onclick="jcomments.clear('captcha');"

id="comments-form-captcha-image" src="/<?php echo $link; ?>" width="121" height="60" alt="

<?php echo JText::_('FORM_CAPTCHA'); ?>" /><br />
<span class="captcha" onclick="jcomments.clear('captcha');">

<?php echo JText::_('FORM_CAPTCHA_REFRESH'); ?></span><br />
<input class="captcha" id="comments-form-captcha" type="text" name="captcha_refid" value="" size="5" tabindex="6" /><br />
</span>
</p>
<?php
} else {
$link = JCommentsFactory::getLink('captcha');
JPluginHelper::importPlugin('captcha');
$dispatcher = JDispatcher::getInstance();
$dispatcher->trigger('onInit','dynamic_recaptcha_1');
?>
<p>
<span>
<div id="dynamic_recaptcha_1"></div>
    </span>
</p>
<?php
}
}
?>

Im Dokument [JOOMLA]/components/com_jcomments/jcomments.ajax.php beginnt in Zeile 275 folgender Code:


if ($acl->check('enable_captcha') == 1)
{
$captchaEngine = $config->get('captcha_engine', 'kcaptcha');
if ($captchaEngine == 'kcaptcha')
    {
require_once( JCOMMENTS_BASE.DS.'jcomments.captcha.php' );
if (!JCommentsCaptcha::check($values['captcha_refid']))
{
JCommentsCaptcha::destroy();
$response->addScript("jcomments.clear('captcha');");
return $response;
}
}
else
    {
$result = JCommentsEvent::trigger('onJCommentsCaptchaVerify',

array($values['captcha_refid'], &$response));
// if all plugins returns false
if (!in_array(true, $result, true))
; {
self::showErrorMessage(JText::_('ERROR_CAPTCHA'));
return $response;
}
    }
}

Diesen ersetzen wir durch diesen Code:


if ($acl->check('enable_captcha') == 1)
{
$captchaEngine = $config->get('captcha_engine', 'kcaptcha');

if ($captchaEngine == "recaptcha")
    {
$post = JRequest::get('post');  
JPluginHelper::importPlugin('captcha');
$dispatcher = JDispatcher::getInstance();
; $resp = $dispatcher->trigger('onCheckAnswer',$post['recaptcha_response_field']);
if(!$resp[0]){
self::showErrorMessage(JText::_('ERROR_CAPTCHA'), 'captcha');
$response->addScript("Recaptcha.reload()");
; return $response;
}
else
{
$response->addScript("Recaptcha.reload()");
}
    }elseif ($captchaEngine == 'kcaptcha')
    {
require_once( JCOMMENTS_BASE.DS.'jcomments.captcha.php' );
if (!JCommentsCaptcha::check($values['captcha_refid']))
{
self::showErrorMessage(JText::_('ERROR_CAPTCHA'), 'captcha');
JCommentsCaptcha::destroy();
$response->addScript("jcomments.clear('captcha');");
return $response;
}
} else
    {
$result = JCommentsEvent::trigger('onJCommentsCaptchaVerify',

array($values['captcha_refid'], &$response));
// if all plugins returns false
if (!in_array(true, $result, true))
{
self::showErrorMessage(JText::_('ERROR_CAPTCHA'));
return $response;
}
    }

}

Schritt 3: freuen!

Mit diesen Änderungen sollte nun ReCaptcha im Auswahlmenü von JComments zur Verfügung stehen (unter „Settings / Layout“). Bei meinen Tests hat alles gut funktioniert. Doch selbst testen solltet Ihr auf jeden Fall. Viel Spaß!

 


Christian Kunz

Von Christian Kunz+Mehr Infos hier.





Anzeige von Clixado

Artikelveröffentlichungen auf starken Magazinen und Blogs

Wir kooperieren mit unzähligen Verlagen und Bloggern und können daher auf über 4000 Blogs zu fast allen Themengebieten Artikelplätze anbieten:

    - Nachhaltiger Linkaufbau, kein SEO-Netzwerk
    - Hohe Sichtbarkeitswerte, keine expired Domains
    - Einmalzahlung, keine Vertragsbindung

Für jede Artikelveröffentlichung erstellen wir hochwertigen Content mit mindestens 400 Wörtern und publizieren den Artikel mit einem DoFollow-Bachlink zu deiner Seite auf einem Magazin oder Blog deiner Wahl.

Frag uns unverbindlich nach Beispielen





SEO-Newsletter bestellen

Mit dem SEO-Newsletter erhältst Du einmal pro Woche eine Übersicht der wichtigsten SEO-Meldungen auf SEO Südwest sowie Ankündigungen wichtiger SEO-Veranstaltungen. Zum Abonnieren des SEO-Newsletters ist die Einwillingung in die Nutzungsbedingungen erforderlich. Zum Bestellen genügt die Angabe der E-Mail-Adresse. Per Klick auf den entsprechenden Button unten kann das Abonnement jederzeit gekündigt werden.
Nutzungsbedingungen


 

SEO-Checkliste

SEO-Checkliste

 

Anzeigen







SEO-Beratung

Suchmaschinenoptimierung und SEO-Beratung für Karlsruhe, Baden und die Pfalz

 

06340/351-943

 

info(at)seo-suedwest.de

SEO-Wissenstest

SEO-Wissenstest

SEO-News

IMAGE SEO-Recap vom 20.9.: Google nutzt keine Klickdaten für das Ranking
Mittwoch, 20. September 2017
Erneut hat Google bestätigt, dass sich Klicks nicht direkt auf die Rankings auswirken. Weiterlesen...
IMAGE Google bestätigt erneut: Klickdaten werden nicht für das Ranking genutzt
Mittwoch, 20. September 2017
Klickdaten fließen nicht direkt in die Google-Rankings ein. Das wurde jetzt erneut bestätigt,... Weiterlesen...

SEO selber machen

SEO selber machen

Bekannt aus

Website Boosting


Internet World Business

SEO United


The SEM Post


Webselling

Sprecher auf

Auszeichnungen

SEO Südwest: Platz 5 bei den SEO-Wahlen 2014 zum besten deutschen SEO-Blog

 

SEO-united.de Tipp 12/15

iBusiness Top-100-Liste SEO-Dienstleister

SEO Südwest English website

Jetzt vernetzen

SEO-Glossar

SEO-Glossar

 

SEO-Kalender 2017

SEO-Kalender 2017

 

Onsite-Optimierung

Onsite-Optimierung

 

SEO- und Suchmaschinenblogs

News aus dem Blog

IMAGE SMX München 2017: ein Ausblick auf den ersten Tag
Dienstag, 14. März 2017
Heute beginnt die diesjährige SMX in München. Neben einer abwechslungsreichen Agenda kann man... Weiterlesen...
IMAGE SEO: Können 'Ausverkauft'-Seiten in Online-Shops positive Rankingeffekte haben?
Sonntag, 01. Februar 2015
Wie geht Google eigentlich mit Seiten aus Online-Shops um, die nicht mehr lieferbare Produkte... Weiterlesen...
IMAGE Welches sind die wichtigsten Rankingfaktoren? Erfahrungen der letzten Jahre
Donnerstag, 07. September 2017
Welche Optimierungen sind besonders geeignet, um die Rankings bei Google zu verbessern? Welche... Weiterlesen...

 Eine Auswahl zufriedener Kunden

Rebel - Bad Küche Raum
Schöne Haare Karlsruhe
kr3m
feel-perfect.eu - Die Nährstoffexperten border=
Flintec IT GmbH
ESM Academy

Verbinden

Social Networks und RSS-Feed