我在我的项目中使用预控制器挂钩 codeigniter
描述:我们使用子域概念和三个模板(主题)。例如:我的网站是 xyz.com。这是有一个第一个模板。
这个 xyz 网站的一些商业注册。例如。abc(商业)。我们创建 abc.xyz.com。abc 选择 2 个模板。浏览器中的 abc.xyz.com 需要显示第二个模板。它没有显示第二个模板。它只显示第一个模板。
当我们多次单击站点上的任何链接时,模板 2 被设置为 abc.xyz.com 链接。
我正在使用代码点火器。加载会话,自动加载文件中的数据库。
我使用预控制器挂钩来检查 url 是 xyz 还是任何子域 abc.xyz.com 在挂钩中,如果 url 是子域之一,我正在设置模板。
但是当 abc.xyz.com 在浏览器中时,模板没有显示。当我为某些点击刷新 url 或单击任何标题链接时,它显示了商业 abc 的实际模板。
请帮助我解决此问题或为我提供一些解决方案。
<?php
class Subdomain_check extends CI_Controller{
public function __construct(){
parent::__construct();
$this->CI =& get_instance();
if (!isset($this->CI->session))
{
$this->CI->load->library('session');
}
}
function checking()
{
$subdomain_arr = explode('.', $_SERVER['HTTP_HOST']); //creates the various parts
if($subdomain_arr[0] == 'www')
{
$subdomain_name = $subdomain_arr[1]; //2ND Part
}
else
{
$subdomain_name = $subdomain_arr[0]; // FIRST Part
}
header ("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header ("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header ("Cache-Control: no-cache, must-revalidate");
header ("Pragma: no-cache");
if( $subdomain_name != 'xyz' )
{
$where = array();
$where['subdomain_name'] = $subdomain_name;
$where['status'] = 1;
$this->db->from('subdomain_map');
$this->db->where($where);
$query = $this->db->get();
if($query->num_rows() < 1)
{
header('Location:http://xyz.com/index.php?/error');
}
else
{
$result = $query->row_array();
$this->CI->session->set_userdata('subdomain_id',$result['subdomain_id']);
$this->CI->session->set_userdata('subdomain_name',$result['subdomain_name']);
$org_id = gat_organisationid_using_subdomainid($result['subdomain_id']);
$this->CI->session->set_userdata('organisation_id', $org_id);
if($org_id)
{
$templ_id = get_templid_using_organisationid($org_id);
$org_logo = get_organisation_logo($org_id);
}
if($templ_id){
if($this->session->userdata('pinlogin'))
$this->CI->session->set_userdata('template_set', 4);
else
$this->CI->session->set_userdata('template_set', $templ_id);
}
if($org_logo)
$this->CI->session->set_userdata('org_logo', $org_logo);
}
}
else
{
$this->CI->session->unset_userdata('subdomain_id');
$this->CI->session->unset_userdata('subdomain_name');
if( $this->CI->session->userdata('user_id') && $this->CI->session->userdata('user_category')<=2 )
{
$this->CI->session->unset_userdata('organisation_id');
$this->CI->session->unset_userdata('org_logo');
}
}
}
}