我不确定如何解决这个问题,但基本上我只是想让用户等30秒才能再发帖..
这是我的代码,它非常自我解释。
$plus30secs = time() + 30;
if($db->rows("SELECT null FROM comments WHERE userid = '1' AND time > " . $plus30secs . "") == 0) {
$db->query("INSERT INTO comments (userid, content, time) VALUES ('1' ,'hi..' ,'" . time() . "')");
} else {
echo 'wait atleast 30 seconds between posting.
}
感谢您提供的所有帮助。
答案 0 :(得分:0)
<强>的index.php 强>
<?php
session_start();
$_SESSION['upd']=time();
?>
<form action="om.php" method="post">
</form>
<强> om.php 强>
session_start();
if(time()-$_SESSION['upd']>30){
//mysql_query();
echo 'query run';
}
您还可以使用javascript-timers发送Ajax请求
答案 1 :(得分:0)
你应该始终保留海报的IP地址。
无论如何,我认为你应该用“minus30secs”来代替“plus30secs”。
答案 2 :(得分:0)
除非有人能够将时间安排到未来并发表评论,否则您的选择应该永远不会返回。 我会像这样修改代码:
$rows=$db->rows("SELECT time FROM comments WHERE userid = '1' order by time desc limit 1");
if(!count($rows) || $rows[1]['time'] + 30 < time()) {
$db->query("INSERT INTO comments (userid, content, time) VALUES ('1' ,'hi..' ,'" . time() . "')");
} else {
echo 'wait atleast 30 seconds between posting.'
}