每秒php限制请求

时间:2011-10-21 17:04:47

标签: php

你好,我在制作像2个php请求之间的简单等待时间一样麻烦... 我有这个代码(例如):

readfile($link);

访问者请求这个PHP代码下载文件...但是在10秒内他又请求另一个...我想限制时间,就像他要求一旦他必须等待从第一次下载到允许第二次请求(下载)30秒......任何想法怎么可能这样做?在PHP ...提前谢谢你:)

编辑: 我试着在下面的帖子的帮助下但没有工作

if (!isset($_SESSION['last_download'])) $_SESSION['last_download'] = 0; {
if (time() - $_SESSION['last_download'] > 10){
    $_SESSION['last_download'] = time();
    echo $_SESSION['last_download'];
    }else {echo"".time() - $_SESSION['last_download']."";}}

但它没有保存会话......任何帮助?

2 个答案:

答案 0 :(得分:2)

  

但它没有保存会话

您是否忘记加入session_start()

尝试

<?php

session_start();

if (isset($_SESSION['last_download']))
{
    if (time() - $_SESSION['last_download'] > 10)
    {
        // allow download
        $_SESSION['last_download'] = time();
        echo $_SESSION['last_download'];
    }
    else
    {
        echo time() - $_SESSION['last_download'];
    }
}
else
{
    // session not set yet, set it now
    $_SESSION['last_download'] = time();
}

?>

答案 1 :(得分:1)

只需将上次下载时间保存到会话中

<?php
if (!isset($_SESSION['last_download'])) $_SESSION['last_download'] = 2; //time in past
if ($_SESSION['last_download'] && time() - $_SESSION['last_download'] > 10){
    $_SESSION['last_download'] = time();
    //allow download
}