PHP 冷却时间设置在 MYSQL 中


PHP cooldown set in MYSQL

我有这个php代码:

if(isset($_SESSION['last_submit']) && ((time() - $_SESSION['last_submit']) < 120)) {
  $timecounter =  time() - 120 - $_SESSION['last_submit'];
  output("Still on cooldown! Wait: (".$timecounter. "-) more seconds!");
} else { 
  $_SESSION['last_submit'] = time();
}

我基本上想要的是,我想将其链接到 mysql 数据库,我希望能够提交,在数据库中存储 2 分钟的"冷却时间",每当数据库中的冷却时间为 0,冷却时间关闭,代码可以再次执行,设置 2 分钟的冷却时间等。

多谢!

$mysqli = new mysqli('localhost', 'my_user', 'my_password', 'my_db');
$res = $mysqli->query("SELECT next_submit FROM cooldown");
if ($res->num_rows == 0){
    $next_submit = time()-60;
} else {
    $row = $res->fetch_assoc();
    $next_submit = $row['next_submit'];
} 
if ($next_submit < time()){
    $next_submit = time() + 2*60;
    $mysqli->query("UPDATE cooldown SET next_submit='$next_submit'");
    // do stuff here
}

这就是您所拥有的,但它需要您当前刷新页面以查看计时器何时启动。你想要实时更新吗?这是你想要的吗?

如果你想从你的数据库中得到它,只需在他们单击"提交"时使用更新语句存储值,然后做同样的事情,你只是用你得到的 databse 值的变量替换$_SESSION['last_submit'];