2016-06-20 96 views
1

我想在wordpress中添加會話並從中檢索值。我正在爲我的網站使用子域名。我在主題的header.php文件中添加了代碼來檢索子域並將其放入會話中。我已經開始會議並將其中的價值。當我在url會話中使用子域名時檢索會話值但沒有子域名時,它不起作用,即使會話具有該值。以下是我的代碼:在wordpress中添加會話

$url = $_SERVER['SERVER_NAME']; 
$parsedUrl = parse_url($url); 
$host = explode('.', $parsedUrl['path']); 
$subdomain = $host[0]; 

$wp_session = WP_Session::get_instance(); 
if(isset($wp_session['user_subdomain'])) 
{ 
?> 
<script>alert('<?php echo "Check first session Set ".$wp_session['user_subdomain']; ?>');</script> 
<?php 
} 
else 
{ 
?> 
<script>alert('<?php echo "Check first session Not Set "; ?>');</script> 
<?php 
} 
if($wp_session['user_subdomain']=="test"){ 
?> 
<script>alert('<?php echo "session ".$wp_session['user_subdomain']; ?>');</script> 
<?php 
$red_url=$wp_session['user_subdomain'].".domain.com"; 
?> 
<script>alert('<?php echo "RED ".$red_url; ?>');</script> 
<?php 
header("location:$red_url"); 
} 
else if($subdomain=="test"){ 
$red_url=$_SERVER['SERVER_NAME']; 
$wp_session['user_subdomain']=$subdomain; 
?> 
<script>alert('<?php echo "get ".$subdomain; ?>');</script> 
<script>alert('<?php echo "check set session ".$wp_session['user_subdomain']; ?>');</script> 
<?php 
header("location:$red_url"); 

} 

我已經添加在wp_unregister_GLOBALS功能「_SESSION」,我發現它的地方在谷歌。

回答

0

我們優先設置會話。以下代碼將正常工作。

add_action('init', 'myStartSession', 1); 

function myStartSession() { 
    if(!session_id()) { 
     session_start(); 
    } 
} 
0

您也必須在子域上設置會話ID。

嘗試添加此行

ini_set('session.cookie_domain', '.example.com'); 

More info

+0

它不工作。我已經添加在header.php文件中。 – vishal

+0

謝謝@Divyesh我的代碼正在工作,但只適用於IE。不適用於Chrome和Firefox。 – vishal

+0

頁面刷新頁面不提醒會話值。 如果我們使用session();僅功能並設置會話。會話在頁面加載時被破壞。爲什麼它在起作用? – vishal