0

我不太确定该怎么做,但基本上我只是想让用户等待 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.
}

感谢您在高级方面的所有帮助。

4

3 回答 3

0

索引.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 请求

于 2013-07-01T10:15:45.547 回答
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.'
}
于 2013-07-01T10:44:34.050 回答
0

您应该始终保留发布者的 IP 地址。

无论如何,我认为你应该检查“minus30secs”,而不是“plus30secs”。

于 2013-07-01T10:28:27.527 回答