Я внедрил рабочую форму защищенной обратной связи, которую я использовал на своем веб-сайте, на веб-сайте клиента. Все формы отлично работают при размещении на моем сервере рядом с моим собственным сайтом.
После тестирования я загрузил сайт клиента на его сервер. Однако после повторного тестирования он не работает. Все, что я сделал, это поменял ключи. Рекапча будет в порядке, и форма переходит на страницу отправки после отправки, как будто все работает правильно, но просто не отправляется на мой почтовый ящик.
Ниже приведен php-файл, который отлично работает на моем сайте и на его до миграции серверов.
<?php
function post_captcha($user_response) {
$fields_string = '';
$fields = array(
'secret' => 'key',
'response' => $user_response
);
foreach($fields as $key=>$value)
$fields_string .= $key . '=' . $value . '&';
$fields_string = rtrim($fields_string, '&');
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://www.google.com/recaptcha/api/siteverify');
curl_setopt($ch, CURLOPT_POST, count($fields));
curl_setopt($ch, CURLOPT_POSTFIELDS, $fields_string);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, True);
$result = curl_exec($ch);
curl_close($ch);
return json_decode($result, true);
}
// Call the function post_captcha
$res = post_captcha($_POST['g-recaptcha-response']);
if (!$res['success']) {
// What happens when the CAPTCHA wasn't checked
echo "<script>alert('Please make sure you check the security CAPTCHA box.');</script>";
} else {
// If CAPTCHA is successfully completed...
$to="email";
$name=$_REQUEST['name'];
$email=$_REQUEST['email'];
$phone=$_REQUEST['phone'];
$area=$_REQUEST['area'];
$option=$_REQUEST['option'];
$message=$_REQUEST['message'];
$MESSAGE_BODY = "Name: ".$name."\n";
$MESSAGE_BODY .= "Email: ".$email."\n";
$MESSAGE_BODY .= "Phone No: ".$phone."\n";
$MESSAGE_BODY .= "Area: ".$area."\n";
$MESSAGE_BODY .= "Subject enquiry: ".$option."\n";
$MESSAGE_BODY .= "Message: ".$message."";
$from="From: $name <$email>\r\nReturn-path: $email";
$subject="Website Enquiry - $option";
mail($to, $subject, $MESSAGE_BODY, $from);
header('Location: submit.html');
}
?>
Любые идеи будут высоко оценены!