codeigniter会话在构造函数中不起作用

时间:2014-03-19 11:18:08

标签: php codeigniter session

如果$result不是false,则以下是存储会话数据的代码。如果$result为false,则根据之前的会话值重定向用户。

但问题是会话值在上面代码的else条件中显示emptyfalse,并且如果$result为真,则显示正确的数据但在$result是假的。

$resulttrue时,它设置session并按预期工作..但当$resultfalse时,它甚至没有显示我have already为真时我$result分配的会话值。

我该怎么做?

这是我的代码:

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

    $result = $this->extractdomain->extract(site_url());
    if (!empty($result)) {
        $session_user = array(
            'location' => $result,
            'urlParams' => $this->uri->uri_string()
        );
        $this->session->set_userdata($session_user);
        var_dump($this->session->userdata('location'));

    } else {
        $redirectUrl = $this->session->userdata('location') ? $this->session->userdata('location') . '.' : '';
        $urlParams = $this->session->userdata('urlParams') ? $this->session->userdata('urlParams') : '';
        var_dump($this->session->userdata('location'));
        var_dump($redirectUrl);
        var_dump($urlParams);
        //$url = 'http://' . $redirectUrl . 'mydomain.in' . $urlParams;
        //redirect($url);
    }
}

extractdomain代码:

function extract($domain) {
    $subdomain_arr = explode('.', $domain);
    $subdomain_name = $subdomain_arr[0];

    $subdomain_name = explode('http://', $subdomain_name);

    if ($subdomain_name[1] == "mydomain") {
        return "India";
    } else {
        $location = array('mumbai','goa','delhi','pune');
        if(in_array($subdomain_name[1], $location)){
            return ucfirst($subdomain_name[1]);
        }
        else{
            return '';
        }

    }
}

0 个答案:

没有答案