Ich versuche, das Google ReCaptcha für eine Kontaktseite zu installieren, und ich habe wirklich begrenzte Kenntnisse mit PHP. Ich bin mir nicht sicher, wo die Informationen, die Google benötigt, in meine PHP-Datei gehen sollten. Hier sind die Google-Anweisungen dafür:Install Info für Google reCaptcha auf Kontaktformular PHP Datei
Wenn Ihre Benutzer senden Sie das Formular in dem Sie reCAPTCHA integriert, die Sie als Teil der Nutzlast eine Zeichenfolge mit dem Namen „g-recaptcha-Antwort“ erhalten werden. Um herauszufinden, ob Google zu überprüfen, wurde der Nachweis erbracht, dass Benutzer, eine POST-Anforderung mit diesen Parametern senden:
URL: https://www.google.com/recaptcha/api/siteverify
Geheimnis (erforderlich) - xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Antwort (erforderlich) - Der Wert von ‚g -recaptcha-Antwort '.
remoteip - Die IP-Adresse des Endbenutzers.
Und hier ist mein PHP für das Formular, das ich verwende.
<?php
$secret = 'SECRET KEY HERE';
$verificationResponse = $_POST["g-recaptcha-response"];
$response = file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=".$secret."&response=".$verificationResponse);
$response = json_decode($response, true);
if($response["success"] === true){
// actions if successful
}else{
// actions if failed
}
/* Set e-mail recipient */
$myemail = "[email protected]";
/* Check all form inputs using check_input function */
$name = check_input($_POST['inputName'], "First and Last");
$email = check_input($_POST['inputEmail'], "Required");
$phone = check_input($_POST['inputPhone']);
$message = check_input($_POST['inputMessage'], "Brief Description");
/* If e-mail is not valid show error message */
if (!preg_match("/([\w\-]+\@[\w\-]+\.[\w\-]+)/", $email))
{
show_error("Invalid e-mail address");
}
/* Let's prepare the message for the e-mail */
$subject = "Contact Message from thewiseinvestor.net";
$message = "
Someone has sent you a message using your contact form:
Name: $name
Email: $email
Phone: $phone
Message:
$message
";
/* Send the message using mail() function */
mail($myemail, $subject, $message);
/* Redirect visitor to the thank you page */
header('Location:contact.html');
exit();
/* Functions we used */
function check_input($data, $problem='')
{
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
if ($problem && strlen($data) == 0)
{
show_error($problem);
}
return $data;
}
function show_error($myError)
{
?>
<html>
<body>
<p>Please correct the following error:</p>
<strong><?php echo $myError; ?></strong>
<p>Hit the back button and try again</p>
</body>
</html>
<?php
exit();
}
?>
HTML-Formular
<div class="row">
<div class="col-md-6 message">
<h2>Send Us A Message</h2>
<form name="contactform" method="post" action="index.php" class="form-vertical">
<div class="form-group">
<label for="inputName" class="control-label">Name</label>
<input type="text" class="form-control" id="inputName" name="inputName" placeholder="First and Last">
</div>
<div class="form-group">
<label for="inputEmail" class="control-label">Email*</label>
<input type="text" class="form-control" id="inputEmail" name="inputEmail" placeholder="Required">
</div>
<div class="form-group">
<label for="inputPhone" class="control-label">Phone Number</label>
<input type="text" class="form-control" id="inputPhone" name="inputPhone" placeholder="Optional">
</div>
<div class="form-group">
<label for="inputMessage" class="control-label">Message</label>
<textarea class="form-control" rows="5" id="inputMessage" name="inputMessage" placeholder="Brief Description"></textarea>
</div>
<div class="g-recaptcha" data-sitekey="DATA SITE KEY HERE"></div>
<div class="form-group">
<button type="submit" class="btn btn-custom pull-right hvr-underline-from-left">Send</button>
</div>
</form>
</div> <!-- end col-md-6 -->
Ich bin wirklich nicht sicher, wo sollen die oben genannten Informationen gehen. Jede Hilfe wird sehr geschätzt.
Danke @Ruslan Abuzant. Dies ist in der Tat hilfreich. Ich werde das Folgende hinzufügen, wo Sie angegeben haben, Entschuldigung für eine weitere dumme Frage, den google secret key, der benötigt wird, wo würde das oben gehen? – user3786102
Keine Sorge, der bearbeitete Code wurde einfach bearbeitet und Sie können den Schlüssel einfach kopieren und einfügen. Es wird als "$ secret" an die Google-Verifikations-URL übergeben, wie Sie sehen können. –
Ich bin fast da @Ruslan Abuzant. Ich habe meinen obigen PHP-Code aktualisiert, um die von Ihnen vorgeschlagenen Änderungen widerzuspiegeln. Ich habe auch mein HTML-Formular eingefügt. Ich bekomme 3 Fehler im Zusammenhang mit Zeile 6, wenn ich auf "Senden" klicke.** Warnung: file_get_contents(): https: // wrapper ist in der Serverkonfiguration von allow_url_fopen = 0 in /nfs/c12/h08/mnt/215915/domains/thewiseinvestor.net/html/index.php in Zeile 6 * deaktiviert * – user3786102