【问题标题】:Run script each minute [closed]每分钟运行一次脚本[关闭]
【发布时间】:2014-01-19 15:48:13
【问题描述】:

我想在按下开始按钮后每分钟运行一个脚本。

我怎样才能做到这一点?

这是我也想运行的代码:

    if (!isset($_SESSION)) {
  session_start();
}

$loggedUser = $_SESSION['MM_Username'];
$result=mysql_query("SELECT `availableTime` FROM `user` WHERE userName='$loggedUser'");
$row=mysql_fetch_assoc($result);
$time=$row['availableTime'];

if ($time > 0){
mysql_query("UPDATE `user` SET `availableTime` =  `availableTime` - 1 WHERE userName='$loggedUser' ");
} else {
mysql_query("UPDATE `user` SET `availableTime` =  `availableTime` = 0 WHERE userName='$loggedUser' ");
    header( 'Location: http://192.168.42.1/kick.php?ip=' . $_SESSION['ip'] ) ;
}

【问题讨论】:

  • 你应该使用 cronjob

标签: php html session


【解决方案1】:

如果您使用的是 unix,请使用 crontab,如果您使用的是 Windows,请使用 Windows Task Scheduler

Cron 示例(每分钟)

* * * * * /path/to/php /var/www/html/yourscript.php

改变心意

我认为您在这里要做的是在用户浏览器中使用 AJAX 每分钟调用此脚本并检查用户是否仍然允许登录,如果用户不应该登录,您应该杀死他们使用 PHP 的会话,然后使用 javascript 重定向它们。

【讨论】:

  • 我在unix上,当多个用户登录时crontab可以工作吗?
  • Crontab 会按照您设置的频率运行该脚本。在这种情况下,您需要更改查询以搜索任何时间已过期的用户。
【解决方案2】:

使用crontab/windows任务调度器并通过php通过exec()/system()执行

【讨论】:

    【解决方案3】:

    按照您的问题。 按下开始按钮后。 你需要使用 javascript/jquery 来做到这一点。

    您可以使用以下函数在 5000 毫秒内使用 AJAX 调用您的脚本

    setInterval(function(){ajaxcall();},5000);
    

    下面是函数ajax调用

    function ajaxcall() {
      AJAX call your php script
    }
    

    【讨论】:

    • 这看起来像我想要的!我怎么能把这段代码包装在一个按钮里?
    • 你可以这样做,在按钮上添加onclick事件来调用它。
    【解决方案4】:

    我认为您需要从 javascript 调用中调用您的 php 脚本

     var timerID = setInterval(function() {
        $.ajax({
          url: "script.php",
          context: document.body
        });
      }, 60 * 1000);
    
    
      clearInterval(timerID);
    

    【讨论】:

      猜你喜欢
      • 2011-06-17
      • 2010-12-04
      • 1970-01-01
      • 2016-03-28
      • 1970-01-01
      • 2011-07-20
      • 2014-03-25
      • 1970-01-01
      相关资源
      最近更新 更多