codeigniter cron job与会话检查钩子

时间:2015-02-11 15:40:06

标签: php codeigniter

我需要为使用codeigniter编写的应用程序运行一个cron作业。

我的主要问题是我的codeigniter应用程序使用一个钩子来检查是否存在有效的会话,并且设置了$ _SESSION ['user_id']。

通过终端运行我的应用程序因为挂钩而无法正常工作。

有人有解决方案吗?

2 个答案:

答案 0 :(得分:2)

为浏览器创建会话,它们不会存在于CLI中。您可以使用:

$this->input->is_cli_request()

真的只是

if (php_sapi_name() == "cli")

检查CLI,并相应地处理事情。如果您需要模拟以用户身份运行,您可以使用终端中存在的环境变量(如何执行此操作取决于操作系统),或传入仅由CLI接受的参数,但这可能会使使用的其他代码复杂化段。

答案 1 :(得分:0)

我遇到了运行Cron作业的同样问题。

我设置了一个唯一的密钥,绕过了对Session登录的需求

然后我通过GET传递它。

所以我会有($ this-> input-> get('auth')== '64字母数字字符串')

为了增加安全性,您甚至可以拥有两个字段。例如,auth和确认。这模仿了twilio等服务为其API密钥工作的方式。