2012-04-23 102 views
2

我有一個不在同一個域上的頁面上的iFRAME。我正在嘗試通過網址傳遞會話ID。我設置的URL,例如像....在IFRAME中傳遞會話信息

applyonline.php?session_id=3u8ob97d5e3h35povbnuraih22 

然後我讀會話ID與...

$session_id = $_GET['session_id']; 
    session_id($session_id); 

我已經試過無濟於事設置這些...

ini_set('session.use_cookies', '0'); 
    ini_set('session.use_trans_sid', '1'); 

我已經像GOOGLE一樣瘋狂,並找不到適合我的解決方案。

BTW Firefox工作正常,因爲它接受iFRAME中的第三方cookie,IE是問題所在。

+0

我想答案是肯定的,但有兩個域在同一臺服務器上?你是說在Firefox的方法工作,你可以讀會話數據,它只是IE瀏覽器失敗?如果每個域以不同的用戶身份運行,則第二個域的用戶將很可能無法訪問由始發域創建的會話文件。 – drew010 2012-04-23 01:24:25

+0

是的,它適用於Firefox。這些域不在同一臺服務器上。 – 2012-04-23 01:26:39

+0

另外我沒有傳遞域之間的信息,我只需要將它傳遞給iFRAME頁面。 – 2012-04-23 01:27:49

回答

3

使用?PHPSESSID=說法代替。

最乾淨的方式來做到這一點是描述in the docs

url.php?<?= htmlspecialchars(SID) ?> 
+0

所以SID是常數。是否保留PHPSESSID用於存儲會話ID? – 2012-04-24 14:49:33

+0

我試圖通過禁用cookie,它仍然無法正常工作。 – 2012-04-24 15:00:01

+0

我終於能夠得到這個工作!你的回答確實有幫助,但如果有人遇到這個問題。在使用session_start()開始會話之前,您需要設置session_id($ variable),這樣可以解決我的問題。 – 2012-04-24 15:34:26

0

這似乎即使它看起來它依然使用的cookies的工作:

header ("p3p:CP=\"IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT\""); 
+1

有一些解釋它是什麼http://www.w3.org/TR/P3P11/#compact_policies – Vytautas 2012-04-23 12:31:21