Kann mir jemand sagen, was ich bei meinen Versuchen, googls reCaptcha in mein Kontaktformular einzubauen, falsch mache?
Den Code und die Keys, die man von google bekommt, habe ich gemäß der Anleitung in mein Formular eingebaut. Das sollte so weit stimmen. Aber die Sache funktioniert schlichtweg nicht: ich kann von Expression Web aus weder eine Browser-Vorschau aktivieren, noch funktioniert diese Datei, nachdem ich sie auf den Server geladen habe und dann im Internet aufrufe.
Was mir überhaupt nicht klar ist:
1. Genügt es, eine einzige php-Datei zu erzeugen, also die, die das Formular enthält?
Oder brauche ich eine weitere php-Datei, in der das korrekte Ausführen der Aufgabe überprüft wird?
2. Was ist mit der Datei „recaptchalib.php“, die ich – entsprechend einigen Anleitungen – heruntergeladen und ins selben Verzeichnis wie das php-Kontakt-Formular gelegt habe?
3. Könnte ich mein Kontakt-Formular auch als eine normale html Datei speichern, wenn ich im head-Bereich ein entsprechendes Skript einbinde <script src='dummy.php'></script>?
4. Muss ein korrekt angelegtes php-Kontakt-Formular mit reCaptcha auch offline in der Browservorschau angezeigt werden? (Dass offline der eigentliche Check nicht ausgeführt werden kann, ist mir schon klar. Meine Frage zielt nur auf die Darstellung.)
Inzwischen habe ich mindesten zehn verschiedene Anleitungen oder Tutorials angesehen. Irgendwo fliege ich immer auf der Kurve. Da wird dann beispielsweise gesagt, dass einen bestimmten Code abspeichern soll – aber nicht in welchem Format und wie die Datei dann mit der eigentlichen Kontakt-Formular Datei zusammenarbeiten soll. Oder es werden einige Zeilen php-Code erläutert, ohne zu sagen, wo genau der dann zu platzieren ist. Vielleicht erscheint das den jeweiligen Autoren als so offensichtlich, dass sie es nicht erwähnen. Aber ich bin eben zu doof …
Kann mir jemand, mit Blick auf mein php-Kontakt-Formular Code, sagen, was ich tun kann? Oder zumindest, wo ich eine Anleitung finde, die idiotensicher ist?
Danke
Martin
<?php
// Variabeln
$captcha;
// Variabeln mit Inhalt aus dem Formular befüllen
if(isset($_POST['g-recaptcha-response'])){$captcha=$_POST['g-recaptcha-response'];}
else {$captcha ="";}
// Google reCaptcha Box wurde nicht angehakt
if(!$captcha){
echo 'Google reCaptcha Checkbox aktivieren';
exit;}
// Spamversuch wird geblockt, es wird keine eMail versendet
$secretKey = "XXXXreCaptchaXXXsecretKey";
$ip = $_SERVER['REMOTE_ADDR'];
$response=file_get_contents("".$secretKey."&response=".$captcha."&remoteip=".$ip);
$responseKeys = json_decode($response,true);
if(intval($responseKeys["success"]) !== 1) {
echo 'Spam';}
else {
// Hier kann z.B. eine eMail versendet werden
echo 'Ihre Eingabe war richtig!';}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link href="css/styles.css" media="screen" rel="stylesheet" title="CSS" type="text/css" />
<title> Feedback </title>
<script src='api.js'></script>
</head>
<body>
<!-- Begin Container -->
<div id="container">
<div>
<form id="kontaktformular" name="kontaktformular" action="http://www.formular-chef.de/fc.cgi" method="post">
<input name="empfaenger" value="anfrageX§Xdummy.de" type="hidden" />
<input name="betreff" value="Anfragen" type="hidden"/>
<p> Haben Sie Fragen oder Anregungen? </p>
<div>
<label class="kontakt" for="absender">Ihre Email:</label>
<input type="text" id="absender" name="absender" pattern="[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,3}$" required />
</div>
<div>
<label class="kontakt" for="nachricht">Ihre Nachricht:</label>
<textarea name="nachricht" cols="20" rows="5" required></textarea>
</div>
<div class="g-recaptcha" data-sitekey=" XXXXreCaptchaXXXWebKey "> </div>
<div> <input type="submit" value="Abschicken" class="absenden" /> </div>
</form>
</div>
</div> <!-- End Container -->
</body>
</html>
Den Code und die Keys, die man von google bekommt, habe ich gemäß der Anleitung in mein Formular eingebaut. Das sollte so weit stimmen. Aber die Sache funktioniert schlichtweg nicht: ich kann von Expression Web aus weder eine Browser-Vorschau aktivieren, noch funktioniert diese Datei, nachdem ich sie auf den Server geladen habe und dann im Internet aufrufe.
Was mir überhaupt nicht klar ist:
1. Genügt es, eine einzige php-Datei zu erzeugen, also die, die das Formular enthält?
Oder brauche ich eine weitere php-Datei, in der das korrekte Ausführen der Aufgabe überprüft wird?
2. Was ist mit der Datei „recaptchalib.php“, die ich – entsprechend einigen Anleitungen – heruntergeladen und ins selben Verzeichnis wie das php-Kontakt-Formular gelegt habe?
3. Könnte ich mein Kontakt-Formular auch als eine normale html Datei speichern, wenn ich im head-Bereich ein entsprechendes Skript einbinde <script src='dummy.php'></script>?
4. Muss ein korrekt angelegtes php-Kontakt-Formular mit reCaptcha auch offline in der Browservorschau angezeigt werden? (Dass offline der eigentliche Check nicht ausgeführt werden kann, ist mir schon klar. Meine Frage zielt nur auf die Darstellung.)
Inzwischen habe ich mindesten zehn verschiedene Anleitungen oder Tutorials angesehen. Irgendwo fliege ich immer auf der Kurve. Da wird dann beispielsweise gesagt, dass einen bestimmten Code abspeichern soll – aber nicht in welchem Format und wie die Datei dann mit der eigentlichen Kontakt-Formular Datei zusammenarbeiten soll. Oder es werden einige Zeilen php-Code erläutert, ohne zu sagen, wo genau der dann zu platzieren ist. Vielleicht erscheint das den jeweiligen Autoren als so offensichtlich, dass sie es nicht erwähnen. Aber ich bin eben zu doof …
Kann mir jemand, mit Blick auf mein php-Kontakt-Formular Code, sagen, was ich tun kann? Oder zumindest, wo ich eine Anleitung finde, die idiotensicher ist?
Danke
Martin
<?php
// Variabeln
$captcha;
// Variabeln mit Inhalt aus dem Formular befüllen
if(isset($_POST['g-recaptcha-response'])){$captcha=$_POST['g-recaptcha-response'];}
else {$captcha ="";}
// Google reCaptcha Box wurde nicht angehakt
if(!$captcha){
echo 'Google reCaptcha Checkbox aktivieren';
exit;}
// Spamversuch wird geblockt, es wird keine eMail versendet
$secretKey = "XXXXreCaptchaXXXsecretKey";
$ip = $_SERVER['REMOTE_ADDR'];
$response=file_get_contents("".$secretKey."&response=".$captcha."&remoteip=".$ip);
$responseKeys = json_decode($response,true);
if(intval($responseKeys["success"]) !== 1) {
echo 'Spam';}
else {
// Hier kann z.B. eine eMail versendet werden
echo 'Ihre Eingabe war richtig!';}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link href="css/styles.css" media="screen" rel="stylesheet" title="CSS" type="text/css" />
<title> Feedback </title>
<script src='api.js'></script>
</head>
<body>
<!-- Begin Container -->
<div id="container">
<div>
<form id="kontaktformular" name="kontaktformular" action="http://www.formular-chef.de/fc.cgi" method="post">
<input name="empfaenger" value="anfrageX§Xdummy.de" type="hidden" />
<input name="betreff" value="Anfragen" type="hidden"/>
<p> Haben Sie Fragen oder Anregungen? </p>
<div>
<label class="kontakt" for="absender">Ihre Email:</label>
<input type="text" id="absender" name="absender" pattern="[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,3}$" required />
</div>
<div>
<label class="kontakt" for="nachricht">Ihre Nachricht:</label>
<textarea name="nachricht" cols="20" rows="5" required></textarea>
</div>
<div class="g-recaptcha" data-sitekey=" XXXXreCaptchaXXXWebKey "> </div>
<div> <input type="submit" value="Abschicken" class="absenden" /> </div>
</form>
</div>
</div> <!-- End Container -->
</body>
</html>