PHP / MySQL等待30秒过滤

时间:2013-07-01 09:10:18

标签: php mysql timer

我不确定如何解决这个问题,但基本上我只是想让用户等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.
}

感谢您提供的所有帮助。

3 个答案:

答案 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.'
}