在codeigniter中从CLI运行脚本时阻止cookie

时间:2011-12-06 01:27:48

标签: php codeigniter command-line

有没有办法阻止会话类在从命令行调用时设置cookie并在数据库中添加记录?

1 个答案:

答案 0 :(得分:6)

我认为最简单的方法是像这样扩展Session类:

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class MY_Session extends CI_Session
{
    public function __construct()
    {
        $CI = get_instance();

        if ($CI->input->is_cli_request())
        {
            return;
        }

        parent::__construct();
    }
}

只需将其放在application/libraries文件夹中即可。并使用这样的控制器:

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Welcome extends CI_Controller
{
    public function no_cli_session()
    {
        $this->load->library('session');
        $this->session->set_userdata('logged', 'yes');
    }
}

当您从浏览器调用该功能时,会话已设置,当您从cli调用它时,它不会。