Найдите исполнителя для вашего проекта прямо сейчас!
Разместите заказ на фриланс-бирже и предложения поступят уже через несколько минут.

Задача. Запретить повторную отправку формы на 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);

?>

2 года назад
Dolotok
37 летРоссия
11 лет в сервисе
Был
4 месяца назад