我在网页上的每个帖子下面都有一个“LIKE”按钮。当用户点击“LIKE”按钮时,它通过AJAX向一个like.php页面发送一个GET请求,该页面向mysql数据库表中插入一行。在用户点击LIKE按钮后,LIKE按钮消失。
我想确保用户点击“LIKE”按钮之间应该有3秒的延迟。我的意思是如果用户点击帖子上的“LIKE”按钮并立即点击第二个帖子上的LIKE按钮,如果这段时间少于3秒,则应该拒绝LIKE按钮进程。
现在,问题是我应该在客户端或服务器端的哪个位置进行此检查。如果有一个服务器端,我会想到一个解决方案。
我想把这段代码放到like.php页面
if(isset($_SESSION["last_like_time"]))
{
$last_like_time = $_SESSION["last_like_time"];
$time_diff = time()-$last_like_time;
if($time_diff<3)
{
die("ERROR: You must wait at least " . (3 - $time_diff) . " seconds to Like another Post");
}
$_SESSION["last_like_time"] = time();
}
else
{
$_SESSION["last_like_time"] = time();
}
我的问题是,这是检查SERVER端时差的有效方法吗?如果不是哪种方式最好?
我的第二个问题,如何在不进入SERVER端的情况下在客户端执行此操作?
答案 0 :(得分:0)
您无法在客户端中添加此类安全性。因为客户可以改变。如果用户真的想要向您发送垃圾邮件,他可能不会使用浏览器。
在使用php的服务器端,time()
可以检查当前用户的最后“喜欢”操作。
如果您确实希望将此安全性置于客户端,则必须使用一些javascript。