【发布时间】:2012-01-13 17:15:55
【问题描述】:
有没有办法防止会话类在命令行调用时设置cookie并在数据库中添加记录?
【问题讨论】:
标签: php codeigniter command-line
有没有办法防止会话类在命令行调用时设置cookie并在数据库中添加记录?
【问题讨论】:
标签: php codeigniter command-line
我认为最简单的方法是像这样扩展 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 调用该函数时,则未设置。
【讨论】: