Hallo Forum,
generell gefragt: lässt sich recaptcha 2.0 im WebEdition Formular einsetzen und wenn ja gibts da eine Info für Dummies?
Danke!
recaptcha 2.0
Re: recaptcha 2.0
Hallo Falken,
das geht. Ich hatte das mal so gelöst.
### Die Seite mit dem Formular ###
### Das Include reCaptcha.tmpl ###
Gruß
Stefan
das geht. Ich hatte das mal so gelöst.
### Die Seite mit dem Formular ###
Code: Alles auswählen
<form enctype="multipart/form-data" name="formmail" id="formmail" action="<?php echo $PHP_SELF; ?>" method="post">
...
</form>
<?php
/*****************************************************
FORM WAS SUBMITTED
******************************************************/
} else if($_POST['form_submit']) {
?>
<we:include type="template" id="xxx" comment="reCaptcha.tmpl"/>
<?php
#error_reporting(E_ALL);
#ini_set('display_errors',1);
if ($_POST["g-recaptcha-response"]) {
// key
$secret = ###deinsecretkey###;
// init the recaptcha validation class
$reCaptcha = new reCaptcha($secret, $_POST['g-recaptcha-response']);
// google's response was successful, so proceed request
if($reCaptcha->success()){ ?>
<we:sendMail id="####" subject="subject" from="no-reply@doman.de" recipient="info@doman.de" mimetype="text/html" charset="UTF-8" />
<p>
Ihre Anfrage wurde versendet und wird schnellstmöglich bearbeitet.
</p>
<?php
} else {
// google's response failed: exit
die();
} // eof if $response not null ...
}
} // eof post form submit
?>
Code: Alles auswählen
<?php
class reCaptcha {
var $secret = '';
var $g_recaptcha_response = '';
var $google_api_url = 'https://www.google.com/recaptcha/api/siteverify';
var $response = null;
function __construct($secret, $g_recaptcha_response){
$this->secret = $secret;
$this->g_recaptcha_response = $g_recaptcha_response;
// fire action
$this->validateCaptcha();
}
public function validateCaptcha(){
// check secret key
$post_data = 'secret='.$this->secret.'&response='.$this->g_recaptcha_response.'&remoteip='.$_SERVER['REMOTE_ADDR'] ;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $this->google_api_url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER,
array('Content-Type: application/x-www-form-urlencoded; charset=utf-8',
'Content-Length: ' . strlen($post_data)));
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
$google_response = curl_exec($ch);
$this->response = json_decode($google_response);
curl_close($ch);
$this->success();
}
public function success(){
return ($this->response==true) ? true : false;
}
}
?>
Stefan
Re: recaptcha 2.0
Danke - klingt gut.
Werd ich kurzfristig probieren ob ich schaffe und mich dann melden.
Werd ich kurzfristig probieren ob ich schaffe und mich dann melden.
Re: recaptcha 2.0
Es wäre hier vielleicht auch denkbar ein custom-tag zu machen auf der Grundlage we:captcha. Irgendwo müssen ja die secrets etc. auch gespeichert werden und da kann man dann auch die Tabelle tblCaptcha nutzen.
Es wäre somit auch einfacher und portabler und könnte auch (ggfs. per type) in das we:captcha eingebunden werden.
Es wäre somit auch einfacher und portabler und könnte auch (ggfs. per type) in das we:captcha eingebunden werden.
webEdition-Kern-Entwickler
Re: recaptcha 2.0
Hallo Stefan,
nochmals vielen Dank, leider scheint mir wissensmäßig noch was zu fehlen, dass ich das hinbekomme.
Also ich hab folgendes gemacht:
Wie beim recatpcha beschrieben das im Head eingebunden:
<script src='https://www.google.com/recaptcha/api.js'></script>
Im Formular selbst dies reingegeben:
<div class="g-recaptcha" data-sitekey="public-key"></div>
recaptcha-template angelegt mit deinem Code (darin hab ich nix geändert oder eingetragen)
Bis hierher keine Auffälligkeiten
---------------------
Formularseite:
we:form durch deine Zeile ersetzt: <form enctype="multipart/form-data" name="formmail" id="formmail" action="<?php echo $PHP_SELF; ?>" method="post">
Nach dem Formular deinen PHP-Code reingegeben und den Secret key (ich habe den Code in 2 Komma gesetzt da das sonst beim Speichern bemängelt wird 'mein secret code' ) sowie die ID vom recaptcha-template hinterlegt, Emailempfänger eingetragen
Und jetzt steht ich vor dem Problem, dass Webedition beim Speichern diese Meldung bringt:
Fehler beim Speichern der Vorlage anfragevorlage.tmpl
error: syntax error, unexpected '}'
Line: 1191
Code:
1189: </html>
1190:
So viele Zeilen hat die Vorlage gar nicht, jedoch gibt es noch die Hauptvorlage in der die Formularvorlage eingebunden ist.
Ohne die neuen Zusätze kommt keine Fehlermeldung.
Hast Du eine Ahnung was das sein könnte bzw. was ich falsch mache?
Danke!
nochmals vielen Dank, leider scheint mir wissensmäßig noch was zu fehlen, dass ich das hinbekomme.
Also ich hab folgendes gemacht:
Wie beim recatpcha beschrieben das im Head eingebunden:
<script src='https://www.google.com/recaptcha/api.js'></script>
Im Formular selbst dies reingegeben:
<div class="g-recaptcha" data-sitekey="public-key"></div>
recaptcha-template angelegt mit deinem Code (darin hab ich nix geändert oder eingetragen)
Bis hierher keine Auffälligkeiten
---------------------
Formularseite:
we:form durch deine Zeile ersetzt: <form enctype="multipart/form-data" name="formmail" id="formmail" action="<?php echo $PHP_SELF; ?>" method="post">
Nach dem Formular deinen PHP-Code reingegeben und den Secret key (ich habe den Code in 2 Komma gesetzt da das sonst beim Speichern bemängelt wird 'mein secret code' ) sowie die ID vom recaptcha-template hinterlegt, Emailempfänger eingetragen
Und jetzt steht ich vor dem Problem, dass Webedition beim Speichern diese Meldung bringt:
Fehler beim Speichern der Vorlage anfragevorlage.tmpl
error: syntax error, unexpected '}'
Line: 1191
Code:
1189: </html>
1190:
So viele Zeilen hat die Vorlage gar nicht, jedoch gibt es noch die Hauptvorlage in der die Formularvorlage eingebunden ist.
Ohne die neuen Zusätze kommt keine Fehlermeldung.
Hast Du eine Ahnung was das sein könnte bzw. was ich falsch mache?
Danke!
Wer ist online?
Mitglieder in diesem Forum: 0 Mitglieder und 4 Gäste