延迟时间直到用户可以再次运行php脚本

时间:2018-01-24 14:30:49

标签: php

我搜索了很多并没有找到一个简单的答案,我只需要不允许用户运行相同的PHP脚本太快,就像他发送表单一样,我需要阻止相同的表单又跑了10秒钟。

我尝试使用:

     if(isset($_SESSION['var']){
            exit;
         }

并在脚本开头设置var,然后在脚本完成时取消设置,但它只会禁止他在当前运行时运行脚本,有没有办法做到这一点?

1 个答案:

答案 0 :(得分:1)

您可以使用Timeout来阻止用户快速运行脚本, 但是php使用Session来存储Timeout,如下所示:

session_start(); //At the beginning of the PHP file

define("TIMEOUT", 10); //10 sec

//Check timeout
if (isset($_SESSION['expire'])) {
    if ($_SESSION['expire']-time()>TIMEOUT) {
        unset($_SESSION['expire']);
    }   
}

//Allow to do submit after 10 sec
if (!isset($_SESSION['expire'])) {
    $_SESSION['expire']=time();

    //Your submit code
}