Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
延迟时间,直到用户可以再次运行php脚本_Php - Fatal编程技术网

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

延迟时间,直到用户可以再次运行php脚本,php,Php,我搜索了很多,没有找到简单的答案,我需要的是不要让用户运行同一个php脚本太快,就像如果他发送表单,我需要阻止相同的表单再次运行10秒钟 我尝试使用: if(isset($_SESSION['var']){ exit; } 在脚本开始时设置var,然后在脚本完成时取消设置var,但这只会禁止他在脚本当前运行时运行脚本,有没有办法做到这一点?您可以使用超时来防止用户运行脚本过快, 但是php使用会话存储超时,如下所示: session_star

我搜索了很多,没有找到简单的答案,我需要的是不要让用户运行同一个php脚本太快,就像如果他发送表单,我需要阻止相同的表单再次运行10秒钟

我尝试使用:

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

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

您可以使用超时来防止用户运行脚本过快, 但是php使用会话存储超时,如下所示:

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
}

您可以将上次就诊时间存储在会话中,并将其与当前时间进行比较它必须有多安全?您可以将cookie的生存期设置为10秒。如果用户浏览器上存在cookie,请阻止它。即使用户退出页面并返回,Cookies也会持续存在,与sessionit不同的是,它不必是安全的,它只是一种预防措施,用户不要通过双击两次发送事务…如果$\u SESSION['var']