【问题标题】:prevent cookie when running script from CLI in codeigniter在 codeigniter 中从 CLI 运行脚本时防止 cookie
【发布时间】:2012-01-13 17:15:55
【问题描述】:

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

【问题讨论】:

    标签: php codeigniter command-line


    【解决方案1】:

    我认为最简单的方法是像这样扩展 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 调用该函数时,则未设置。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-08-26
      • 1970-01-01
      • 2017-02-27
      • 2015-01-25
      • 2017-07-19
      • 2014-02-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多