-1

I have got this php code

$uploaded=0;
$_SESSION['numberOfUploadsInTimeFrame']=$uploaded;
if (isset($_POST['UploadMSub'])) {
    $uploaded++;
    $_SESSION['firstUploadTime'] = time();
}


function isFileUploadAllowed() {
    $isAllowed                  = true;
    $timeNow                    = time();
    $timeFrameInSeconds         = 30;
    $maxUploadsInTimeFrame      = 5;
    $firstUploadTime            = $_SESSION['firstUploadTime'] ? intval($_SESSION['firstUploadTime']) : $timeNow;
    $numberOfUploadsInTimeFrame = $_SESSION['numberOfUploadsInTimeFrame'] ? intval($_SESSION['numberOfUploadsInTimeFrame']) : 0;
    $givenTimeFrameExpired      = (($firstUploadTime + $timeFrameInSeconds) < $timeNow);
    if (!$givenTimeFrameExpired) {
        if ($numberOfUploadsInTimeFrame + 1 > $maxUploadsInTimeFrame) {
            $isAllowed = false;
        }
    }

    if ($isAllowed === true) {
        if ($givenTimeFrameExpired) {
            $_SESSION['firstUploadTime'] = $timeNow;
            $_SESSION['numberOfUploadsInTimeFrame'] = 0;
        }

        $_SESSION['numberOfUploadsInTimeFrame']++;
    }
    return $isAllowed;
}   

How can i make that so every 60 seconds $_SESSION['numberOfUploadsInTimeFrame'] will be decreased by one Please do not suggest sleep() or Cron

Tom Odell
  • 41
  • 9

1 Answers1

0

You can use jQuery's ajax method, inside setInterval of 60000 ms = 1 min , see example below:

setInterval(function() {
    $.ajax({
        url: 'url to your php script you want to execute',
        method: 'post',
        aysnc: false,
        data: {
            var: 'value'
        }
        success: function(response) {
            console.log(response);
        }
    });
}, 60000);
kamal pal
  • 4,187
  • 5
  • 25
  • 40