Запретить повторную отправку формы на PHP
Задача. Запретить повторную отправку формы на Email, если ранее была осуществлена отправка.
1) Возможно ли предусмотреть время жизни кукиес? Например задать что если прошло 4 дня, то разрешаем повторную отправку
2) Так же в форму надо прокидывать реферер . $_SERVER[«HTTP_REFERER»] .'
Как я это вижу?
Клиент заполняет форму, нажимает кнопку отправить.
Далее файл form.php записывает в cookies параметр по которому мы можем в будущем проверить была отправка или нет.
Далее если form.php видит что форма отправлялась, то выдает сообщение
Извините, но вы слишком часто отправляет формы
Сам скрипт form.php
include_once("config.php");
$code = 1;$error = true;$name_input = array();
$to_name = $mail_title;//Отправитель
$to_email = 'ПОЧТА@bk.ru';
if(isset($_POST["name"])){
$name = $_POST["name"];
$phone = preg_replace('/[^0-9]/', '', trim($_POST["phone"]));
$name777 = $_POST["name777"];
if($name == '' or strlen($name) 50){$name_input[] = 'name'; $error = false;}
if($phone == '' or strlen($phone) 50){$name_input[] = 'phone'; $error = false;}
if($error){
$header = "From: \"$to_name\" \n";
$header .= "Content-type: text/plain; charset=\"utf-8\"";
$subject = "Новая заявка"; //Тема письма
$message = "Форма: $name777\n\nИмя: $name\nТелефон: $phone"; //Сообщение
if($mess != ''){
$message .= "Текст сообщения:$mess\n";
}
mail($to_email, $subject, $message, $header);
$code = 0;
}
}
$data_str = array('code' => $code, 'input' => $name_input);
echo json_encode($data_str);
?>
Заявки фрилансеров
