如果$result
不是false,则以下是存储会话数据的代码。如果$result
为false,则根据之前的会话值重定向用户。
但问题是会话值在上面代码的else条件中显示empty
或false
,并且如果$result
为真,则显示正确的数据但在$result
是假的。
当$result
为true
时,它设置session
并按预期工作..但当$result
为false
时,它甚至没有显示我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 '';
}
}
}