$ this-> input-> request_headers()返回空数组

时间:2015-02-22 03:57:08

标签: codeigniter

我正在使用CI 3.0 dev开发应用程序原型。我的菜单控制器中有以下代码:

此代码不返回任何内容

 $myHeaders = $this->input->request_headers();
 log_message('info', "Headers..(option1) ", print_r($myHeaders, TRUE));

此代码返回完整数组

 $headers = apache_request_headers();
 log_message('info', 'Headers.. (option2) '.print_r($headers, TRUE));

然而,输入类(最终)调用相同的apache_函数。我错过了什么蠢事?

这是日志:

INFO - 2015-02-22 14:45:56 --> Headers..(option1) 
INFO - 2015-02-22 14:45:56 --> Headers.. (option2) Array
(
    [Host] => oap.local
    [Connection] => keep-alive
    [Content-Length] => 0
    [User-Agent] => Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.115 Safari/537.36
    [Origin] => chrome-extension://hgmloofddffdnphfgcellkdfbfbjeloo
    [Content-Type] => application/x-www-form-urlencoded
    [Accept] => */*
    [Accept-Encoding] => gzip, deflate
    [Accept-Language] => en-US,en;q=0.8
)

这是整个控制器:

defined('BASEPATH') OR exit('No direct script access allowed');

class Menu extends CI_Controller {

    public function __construct() {
        parent::__construct();
    }


    public function getMenu($menuID)
    {
        log_message('info', __METHOD__ . "MenuID is ", $menuID);

        $myHeaders = $this->input->request_headers();
        log_message('info', "Headers..(option1) ", print_r($myHeaders, TRUE));

        $headers = apache_request_headers();
        log_message('info', 'Headers.. (option2) '.print_r($headers, TRUE));


        $deviceID = $this->input->post('device_reg_id', TRUE);
        log_message('info', "device=".$deviceID);
        $siteID = $this->input->post('site_id', TRUE);
        log_message('info', "device=".$siteID);

        $this->load->helper('zip');
        $this->load->helper('download');
        $filename = '';
        $rc = zipFile('./assets/menu/', $filename);
        $rc = false;
        if ($rc) {
            $data = file_get_contents($filename); // Read the file's contents
            $name = 'menu.zip';            
            force_download($name, $data);
        } else {
            log_message('info', "returning 500");
            $this->output->set_status_header('500');    
        }
    } 
}

1 个答案:

答案 0 :(得分:1)

这可能会帮到你。 log_message函数(./system/core/Common.php)有三个参数。第一个是级别(错误,调试或信息),第二个是消息(字符串值),是一个布尔值。

在第12行和第15行的控制器中,您将发送menuID作为第三个参数和print_r(myHeaders,TRUE)。我认为你的意思是将价值观念融入你的信息中。

尝试将代码更改为以下内容:

log_message('info', __METHOD__ . "MenuID is ".$menuID);

$myHeaders = $this->input->request_headers();
log_message('info', "Headers..(option1) ".print_r($myHeaders, TRUE));