Я пытаюсь предотвратить спам в моей контактной форме. Когда кто-либо связывается с помощью контактной формы, я сохраняю его IP-адрес в базе данных с текущим временем. Если кто-то пытается связаться, я проверяю IP-адрес в базе данных, и если в базе данных есть запись IP-адреса, я получаю его временную метку и сравниваю ее с текущей временной меткой, но я думаю, что с этим что-то не так, и он дает мне неправильное время, и поэтому пользователь по-прежнему может отправлять сообщения.
Я определил TimeZone, как показано ниже.
define('TIMEZONE', 'Asia/Kolkata');
date_default_timezone_set(TIMEZONE);
$date = date('Y/m/d h:i:s', time());
Я вставляю время записи в базу данных так же, как эхо в php.
Теперь я получаю и сравниваю оба времени, как показано ниже.
$last_time = $row['time'];
$current_time = $date;
if(($current_time-strtotime($last_time )) > 1800) {
//send mail
}
else {
// give error
}
Я пробовал эхо оба раза, и я получаю такой результат
$last_time = 2018-09-23 07:56:37
$current_time = 2018/09/23 07:56:51
($current_time-strtotime($last_time ) = -1537667579
Я не знаю, что с ним не так.
Дайте мне знать, если с этим что-то не так.