vor allem Dank im Voraus für jede Hilfe. ich hochgeladen eine Testseite, so dass Sie das Problem sehen: http://senoranabogados.com.ar/test1.htmlGoogle reCAPTCHA Fehler beim Senden von E-Mails
Und dies ist der PHP-Code ich verwende:
<?php
require_once('phpmailer/PHPMailerAutoload.php');
$toemails = array();
$toemails[] = array(
'email' => 'Your email', // Your Email Address
'name' => 'Your Name' // Your Name
);
// Form Processing Messages
$message_success = 'We have <strong>successfully</strong> received your Message and will get Back to you as soon as possible.';
// Add this only if you use reCaptcha with your Contact Forms
$recaptcha_secret = 'your-recaptcha-secret-key'; // Your reCaptcha Secret
$mail = new PHPMailer();
// If you intend you use SMTP, add your SMTP Code after this Line
if($_SERVER['REQUEST_METHOD'] == 'POST') {
if($_POST['template-contactform-email'] != '') {
$name = isset($_POST['template-contactform-name']) ? $_POST['template-contactform-name'] : '';
$email = isset($_POST['template-contactform-email']) ? $_POST['template-contactform-email'] : '';
$phone = isset($_POST['template-contactform-phone']) ? $_POST['template-contactform-phone'] : '';
$service = isset($_POST['template-contactform-service']) ? $_POST['template-contactform-service'] : '';
$subject = isset($_POST['template-contactform-subject']) ? $_POST['template-contactform-subject'] : '';
$message = isset($_POST['template-contactform-message']) ? $_POST['template-contactform-message'] : '';
$subject = isset($subject) ? $subject : 'New Message From Contact Form';
$botcheck = $_POST['template-contactform-botcheck'];
if($botcheck == '') {
$mail->SetFrom($email , $name);
$mail->AddReplyTo($email , $name);
foreach($toemails as $toemail) {
$mail->AddAddress($toemail['email'] , $toemail['name']);
}
$mail->Subject = $subject;
$name = isset($name) ? "Name: $name<br><br>" : '';
$email = isset($email) ? "Email: $email<br><br>" : '';
$phone = isset($phone) ? "Phone: $phone<br><br>" : '';
$service = isset($service) ? "Service: $service<br><br>" : '';
$message = isset($message) ? "Message: $message<br><br>" : '';
$referrer = $_SERVER['HTTP_REFERER'] ? '<br><br><br>This Form was submitted from: ' . $_SERVER['HTTP_REFERER'] : '';
$body = "$name $email $phone $service $message $referrer";
// Runs only when File Field is present in the Contact Form
if (isset($_FILES['template-contactform-file']) && $_FILES['template-contactform-file']['error'] == UPLOAD_ERR_OK) {
$mail->IsHTML(true);
$mail->AddAttachment($_FILES['template-contactform-file']['tmp_name'], $_FILES['template-contactform-file']['name']);
}
// Runs only when reCaptcha is present in the Contact Form
if(isset($_POST['g-recaptcha-response'])) {
$recaptcha_response = $_POST['g-recaptcha-response'];
$response = file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=" . $recaptcha_secret . "&response=" . $recaptcha_response);
$g_response = json_decode($response);
if ($g_response->success !== true) {
echo '{ "alert": "error", "message": "Captcha not Validated! Please Try Again." }';
die;
}
}
$mail->MsgHTML($body);
$sendEmail = $mail->Send();
if($sendEmail == true):
echo '{ "alert": "success", "message": "' . $message_success . '" }';
else:
echo '{ "alert": "error", "message": "Email <strong>could not</strong> be sent due to some Unexpected Error. Please Try Again later.<br /><br /><strong>Reason:</strong><br />' . $mail->ErrorInfo . '" }';
endif;
} else {
echo '{ "alert": "error", "message": "Bot <strong>Detected</strong>.! Clean yourself Botster.!" }';
}
} else {
echo '{ "alert": "error", "message": "Please <strong>Fill up</strong> all the Fields and Try Again." }';
}
} else {
echo '{ "alert": "error", "message": "An <strong>unexpected error</strong> occured. Please Try Again later." }';
}
?>
Wenn ich entfernen recaptcha aus dem Formular in der HTML-Seite die E-Mails erhalten richtig senden, aber mit recaptcha bekomme ich eine Fehlermeldung "Bot Detected ..." Ich habe die API-Schlüssel überprüft sie sind in Ordnung.
Dann habe ich eine andere PHP snipet Sie die Testseite hier sehen können: http://senoranabogados.com.ar/test2.html
Dies ist der PHP-Code:
<?php
$email;$comment;$captcha;
if(isset($_POST['email'])){
$email=$_POST['email'];
}if(isset($_POST['comment'])){
$email=$_POST['comment'];
}if(isset($_POST['g-recaptcha-response'])){
$captcha=$_POST['g-recaptcha-response'];
}
if(!$captcha){
echo '<h2>Please check the the captcha form.</h2>';
exit;
}
$secretKey = "your-recaptcha-secret-key";
$ip = $_SERVER['REMOTE_ADDR'];
$response=file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=".$secretKey."&response=".$captcha."&remoteip=".$ip);
$responseKeys = json_decode($response,true);
if(intval($responseKeys["success"]) !== 1) {
echo '<h2>You are spammer ! Get the @$%K out</h2>';
} else {
echo '<h2>Thanks for posting comment.</h2>';
}
?>
Hier erhalte ich aa „Fehler ermöglichen Krypto in ... "Fehler
Egal was ich versuche, ich kann nicht recaptcha zu arbeiten.
Jeder Vorschlag würde sehr geschätzt werden.
http://stackoverflow.com/questions/26148701/file-get-contents-ssl-operation-failed-with-code-1-and-more –
Vielen Dank für beide Vorschläge Ich habe das Problem vorübergehend gelöst, der Code funktioniert nicht mit PHP 5.6 y auf 5.5 und funktioniert jetzt gut. Ich weiß nicht warum. – Julittok