Как сделать, чтобы пользователь, который заполнил контактную форму, не смог потом скопировать эту ссылку и зайти на страницу благодарности по прямой ссылке?
<?php
if (isset($_POST['contactFF'])) {
$to = "мойсайт@почта.ру"; // поменять на свой электронный адрес
$from = $_POST['contactFF'];
$subject = "Заполнена контактная форма с " . $_SERVER['HTTP_REFERER'];
$message = "Имя: " . $_POST['nameFF'] . "\nEmail: " . $from . "\nIP: " . $_SERVER['REMOTE_ADDR'] . "\nСообщение: " . $_POST['messageFF'];
$boundary = md5(date('r', time()));
$filesize = '';
$headers = "MIME-Version: 1.0\r\n";
$headers .= "From: " . $from . "\r\n";
$headers .= "Reply-To: " . $from . "\r\n";
$headers .= "Content-Type: multipart/mixed; boundary=\"$boundary\"\r\n";
$message = "
Content-Type: multipart/mixed; boundary=\"$boundary\"
--$boundary
Content-Type: text/plain; charset=\"utf-8\"
Content-Transfer-Encoding: 7bit
$message";
for ($i = 0; $i < count($_FILES['fileFF']['name']); $i++) {
if (is_uploaded_file($_FILES['fileFF']['tmp_name'][$i])) {
$attachment = chunk_split(base64_encode(file_get_contents($_FILES['fileFF']['tmp_name'][$i])));
$filename = $_FILES['fileFF']['name'][$i];
$filetype = $_FILES['fileFF']['type'][$i];
$filesize = $_FILES['fileFF']['size'][$i];
$message .= "
--$boundary
Content-Type: \"$filetype\"; name=\"$filename\"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename=\"$filename\"
$attachment";
}
}
$message .= "
--$boundary--";
if ($filesize < 10000000) { // проверка на общий размер всех файлов. Многие почтовые сервисы не принимают вложения больше 10 МБ
mail($to, $subject, $message, $headers);
// Перенаправление на страницу благодарности
header('Location:страница-благодарности.php');
exit;
} else {
echo 'Извините, письмо не отправлено. Размер всех файлов превышает 10 МБ.';
}
}
// Проверка реферера
if (!isset($_SERVER['HTTP_REFERER']) || strpos($_SERVER['HTTP_REFERER'], 'https://мой сайт.ru') === false) {
header('Location: https://мойсайт.ru'); // Перенаправление на страницу формы
exit;
}
?>
document.getElementById('feedback-form').addEventListener('submit', function(evt) {
var http = new XMLHttpRequest(), f = this;
evt.preventDefault();
http.open("POST", "файл-с-кодом-обработчика-формы.php", true);
http.onreadystatechange = function() {
if (http.readyState == 4) {
if (http.status == 200) {
// Успешный ответ. Перенаправляем пользователя.
window.location.href = 'https://мойсайт.ru/страница-благодарности.php';
} else {
alert('Извините, произошла ошибка при отправке данных.');
}
}
};
http.onerror = function() {
alert('Извините, данные не были переданы');
};
http.send(new FormData(f));
}, false);