PHP管理员/用户操作检测

PHP管理员/用户操作检测,php,codeigniter,cron,job-scheduling,Php,Codeigniter,Cron,Job Scheduling,我有一个php/codeigniter应用程序函数要在以下场景中实现: 有两个用户区域:管理员区域和成员区域 用户下订单 只有“登录”的管理员用户必须在提交时检测到订单已经发出。(记住管理员没有交互) 我考虑过一个cron工作,每隔几分钟检查一次,但必须有另一种方法-也许有人可以在这里帮助-谢谢 我将通过触发对CI控制器操作的AJAX调用来实现上述功能,如果您的用户以管理员身份登录,该操作将获取在过去X分钟内创建的所有订单。我将使其可扩展-因此基本上,您发送一个lowerThreshold和一个

我有一个php/codeigniter应用程序函数要在以下场景中实现:

  • 有两个用户区域:管理员区域和成员区域
  • 用户下订单
  • 只有“登录”的管理员用户必须在提交时检测到订单已经发出。(记住管理员没有交互)

  • 我考虑过一个cron工作,每隔几分钟检查一次,但必须有另一种方法-也许有人可以在这里帮助-谢谢

    我将通过触发对CI控制器操作的AJAX调用来实现上述功能,如果您的用户以管理员身份登录,该操作将获取在过去X分钟内创建的所有订单。我将使其可扩展-因此基本上,您发送一个lowerThreshold和一个upperThreshold时间戳,允许您检索特定时间戳中的订单。模型函数的一个示例是:

    public function retrieveBetweenThreshold($lowerThreshold, $upperThreshold) {
        $this->db->where('created_at > ', $lowerThreshold)
        $this->db->where('created_at < ', $upperThreshold)
        return $this->db->get('order')->result_array();
    }
    
    reshold($lowerThreshold,$upperThreshold)之间的公共函数检索{
    $this->db->where('created_at>,$lowerThreshold)
    $this->db->where('created_at<',$upperThreshold)
    返回$this->db->get('order')->result_array();
    }
    
    作为另外一个因素,我将以这种方式实现您的想法-尝试在管理员注销(非常直接)或关闭窗口(jQuery unload()方法:)时存储管理员的注销日期

    当管理员登录时,触发一个带有当前时间戳和管理员注销日期的AJAX请求,这样您就可以检索注销时所做的条目数,然后每隔X分钟进行一次常规AJAX调用


    更新:对于Ajax推送的概念,这似乎是您想要的,请看一看:

    设置一个CI控制器方法的Ajax请求,该方法检查新的ordersnice想法,但在某种程度上仍然相当于一个cron作业。我想让管理员知道,会员已经下了订单,如果你是说通过电子邮件通知管理员…将必须使用cron作业,如果你是说在线时通知管理员将使用ajax。我假设
    仅登录admin
    您的意思是希望在页面中显示感谢您的回答,但仍然需要触发基于时间的功能来检查订单是否已收到。我想了一种方式,当用户下订单时,登录的管理员会被告知已经下了订单。@owsata嘿,更新我的答案以反映您的评论。如果这是你想要的,请告诉我。