我正在尝试防止我的联系表中的垃圾邮件。当任何人使用联系表进行联系时,我会将其IP地址保存在当前时间的数据库中。如果有人尝试联系,我正在检查数据库中的IP,并且在数据库中是否有IP地址条目,我正在获取它的时间戳并将其与当前时间戳进行比较,但是我认为它有问题,并且给了我错误的时间,因此用户仍然能够发送消息。
我已经如下定义了TimeZone
define('TIMEZONE', 'Asia/Kolkata');
date_default_timezone_set(TIMEZONE);
$date = date('Y/m/d h:i:s', time());
我正在与php中的echo一样在数据库中插入写入时间。
现在我正在获取和比较下面的两个时间
$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
我不知道这是怎么回事。
让我知道它是否有问题。
答案 0 :(得分:0)
还将当前时间转换为strtotime。确保两个日期格式应该相同
define('TIMEZONE', 'Asia/Kolkata');
date_default_timezone_set(TIMEZONE);
$date = date('Y/m/d h:i:s', time());
$last_time = $row['time'];
$current_time = $date;
if((strtotime($current_time)-strtotime($last_time )) > 1800) {
//send mail
}
else {
// give error
}