Recaptcha Konfigurieren
Recaptcha in Joomla und Extensions / Compontents aktivieren
Captcha aktivieren
- Captcha ID bei Goole anlegen: https://www.google.com/recaptcha/admin
- Captcha in Joomla aktivieren und konfigurieren: https://www.templatemonster.com/help/de/joomla-3-x-how-to-configure-captcha-recaptcha-plugin.html
- System -> Global Configuration: Captcha: Recaptcha
- Extensions -> Plugin Manager
- Recaptcha 2.0 auswählen, Public und Private Key eintragen
Captcha in custom compontent einbauen
Joomla bis 3.4: https://joomla.stackexchange.com/questions/15856/how-can-i-use-google-recaptcha-in-my-custom-page
PHP:
JPluginHelper::importPlugin('captcha');
$dispatcher = JDispatcher::getInstance();
$dispatcher->trigger('onInit','dynamic_recaptcha_1');
HTML:<div id="dynamic_recaptcha_1"></div>
Validierung:
$post = JFactory::getApplication()->input->post;
$dispatcher = JEventDispatcher::getInstance();
$res=$dispatcher->trigger('onCheckAnswer',$post['recaptcha_response_field']);
if(!$res[0]){
die('Invalid Captcha');
}
Joomla ab 3.5: https://github.com/joomla/joomla-cms/issues/9544
PHP:
JPluginHelper::importPlugin('captcha');
$dispatcher = JEventDispatcher::getInstance();
$dispatcher->trigger('onInit','my_captcha_div');
HTML: <div class="g-recaptcha" data-sitekey="ENTER_HERE_SITEKEY" data-theme="light" data-size="compact"></div>Validierung (bleibt gleich):
$post = JFactory::getApplication()->input->post;
$dispatcher = JEventDispatcher::getInstance();
$res=$dispatcher->trigger('onCheckAnswer',$post['recaptcha_response_field']);
if(!$res[0]){
die('Invalid Captcha');
}
Eigenbau Captcha: https://www.kaplankomputing.com/blog/tutorials/recaptcha-php-demo-tutorial/
HTML:
<form action="mail.php" method="post" enctype="multipart/form-data">
<input name="sender_name" placeholder="Your Name..."/>
<input name="sender_email" placeholder="Your email..."/>
<textarea placeholder="Your Message..." name="sender_message">
<div class="captcha_wrapper">
<div class="g-recaptcha" data-sitekey="YOUR_KEY"></div>
</div>
<button type="submit" id="send_message">Send Message!</button>
</form>
PHP:
<?php
$sender_name = stripslashes($_POST["sender_name"]);
$sender_email = stripslashes($_POST["sender_email"]);
$sender_message = stripslashes($_POST["sender_message"]);
$response = $_POST["g-recaptcha-response"];
$url = 'https://www.google.com/recaptcha/api/siteverify';
$data = array(
'secret' => 'YOUR_SECRET',
'response' => $_POST["g-recaptcha-response"]
);
$options = array(
'http' => array (
'method' => 'POST',
'content' => http_build_query($data)
)
);
$context = stream_context_create($options);
$verify = file_get_contents($url, false, $context);
$captcha_success=json_decode($verify);
if ($captcha_success->success==false) {
echo "<p>You are a bot! Go away!</p>";
} else if ($captcha_success->success==true) {
echo "<p>You are not not a bot!</p>";
}