2014-02-10 60 views
2

我有一個頁面的結構,它具有頁面內不同域的iframe。這兩個域名僅由我擁有。我面臨的問題是我無法在iframe中訪問父框架的會話。我也嘗試了數據庫會話,但我沒有在iframe中獲得會話變量。在Iframe中訪問Cdbhttpsession

<body> 
<?php Yii::app()->session['myvar']="iframeVar";?> 
<iframe scr="https://xyz.com.au"></iframe> 
</body> 

和xyz.com.au看起來像

<body> 
<?php echo Yii::app()->session['myvar'];?> 
</body> 

請指引我。

謝謝。

+0

您是否在第二個域(在iframe中打開的域)上使用單獨的yii安裝? – deacs

+0

是的......分離服務器與不同域名的分離關係 – Dirgh

+0

iframes需要注意的一點是,如果您的網站位於iframe內,IE和Safari將不允許您發送cookie,因此您需要在查詢中使用會話ID串。 –

回答

0

以下來自this question

在session_start()創建一個會話或恢復基於經由GET或POST請求,或通過cookie傳遞傳遞的會話標識符的當前一個。

你可以嘗試使用單獨的Yii安裝頁面上下面的代碼:

$session=new CHttpSession; 
$session->open(); 

open()方法調用PHP的方法session_start()應該恢復你在父框架有會話。嘗試訪問像這樣的變量:

echo $session['myvar']; 

希望有所幫助。如果不是,請嘗試檢查this question

+0

感謝您的回答,但我已經試過這個,但它不工作..答案我可以找到這個說安全的同一起源政策不允許交叉會話訪問...我期待有替代yii具體的方式。 – Dirgh

+0

當你在兩個框架中回覆Yii :: app() - > session-> sessionID'時,你會得到什麼? – deacs

+0

不同會話ID ...可能是它爲該幀創建新會話... – Dirgh