2011-02-16 30 views
0

我有這樣的問題:我有兩個網站,例如SITEA和站點B

從SITEA.COM,用戶進入此頁面(SITEA.COM/gopage) 具有以下代碼:

session_start(); 
$_SESSION['example'] = "example";  
header("Location: SITEB.COM"); 
在SITEB.com

,我有

<script type="text/javascript" src="SITEA.COM/include/script.js.php"></script> 

在script.js.php(被稱爲SITEB.COM,但是主人d上SITEA.COM)我有

<?php 
    header("Content-Type: text/javascript"); 

    session_start(); 

    ... php code that generates a dynamic javascript code 

的問題是,在這最後一頁我的PHP代碼無法讀取$ _SESSION [「例如」],儘管它們都在SITEA.COM

,如果他們是從不同的領域召回$ _SESSION不工作?

+0

會話僅適用於一個域。你想做什麼?有人應該能夠提供替代方案。 – Freddie 2011-02-16 09:14:33

+0

siteA是一個手機版網站,siteB是一個桌面版網站。 在siteB我想包括我的script.js.php,autoreirects(基於useragent)到siteA,如果您在siteA中使用移動設備 有鏈接「GO TO DESKTOP VERSION」,這應該是轉到siteB.com並禁用(通過會話)autoredirect到siteA。 – 2011-02-16 09:41:02

回答

0

如果他們從不同的 域中調用$ _SESSION不起作用?

正確。

1
if they are recalled from different domains the $_SESSION doesnt work? 

確實。這是設計。會話綁定到一個Web域。否則,當您旅行互聯網時,市場營銷人員和類似人員將能夠跟蹤您的會話。你只需要放棄你現在採用的路線:這是行不通的。

常用的替代方法是在將用戶重定向到其他網站時構建查詢字符串。在你的代碼,你將其更改爲:

session_start(); 
$_SESSION['example'] = "example";  
header("Location: SITEB.COM/?example=" . $_SESSION['example']); 

然後,其他網站上,你可以檢查$ _GET [「例如」],並重新創建會話,像這樣:

session_start(); 
$_SESSION['example'] = $_GET['example'] 

這不是一個完全透明的解決方案,但它非常接近。

相關問題