2012-01-24 208 views
0

我已經做了一個網站,並把它放在它的Flash遊戲。Flash和php會話共享?

對於人們玩遊戲,他們必須登錄到網站。

登錄到網站將創建一個會話。我想爲Flash遊戲獲取會話ID,

所以我創建了一個獲取會話ID的函數。它只適用於Internet Explorer和

當我在Chrome中嘗試它時,它沒有檢索會話ID。

那麼有什麼幫助嗎?

我寫將由AS3用來獲取會話ID的PHP文件,PHP代碼是這樣的:

<?php 
define('_JEXEC', 1); 

define('JPATH_BASE', dirname(__FILE__)); 

define('DS', DIRECTORY_SEPARATOR); 

require_once (JPATH_BASE .DS.'includes'.DS.'defines.php'); 
require_once (JPATH_BASE .DS.'includes'.DS.'framework.php'); 

require('libraries/joomla/factory.php'); 
class session 
{ 
    public function getId() 
    { 
     $mainframe =& JFactory::getApplication('site'); 
     $mainframe->initialise(); 

     $user =& JFactory::getUser(); 
     $user_id = $user->get('id'); 

     //echo($user_id); 

     return $user_id; 
    } 
} 

?> 

當我試圖在IE中閃光,閃光得到了正確的會話編號,但在Chrome中沒有。

+2

有什麼功能?你怎麼知道它在其他瀏覽器中不起作用。你試過什麼了? –

+0

請在您的帖子中添加一些代碼。 –

回答

0

您可以嘗試將存儲在cookie中的會話標識傳遞給嵌入式Flash,然後將其作爲參數傳遞給服務器以識別和初始化會話。

+0

如何將它傳遞給嵌入式閃存? – user1167572

+0

使用flashvars:http://kb2.adobe.com/cps/164/tn_16417.html – whitezo

+0

謝謝,這工作! – user1167572

0

我大約5年前寫的:

http://www.rooftopsolutions.nl/blog/117

我的最終解決方案是使用一種替代令牌(不一樣的會話cookie,出於安全考慮)。令牌將作爲flashvar嵌入到標記中。 Flash播放器會隨着每個HTTP請求手動發送該令牌。

最後,在服務器上,我會將令牌與實際會話ID進行匹配,並調用session_id()/ session_start()。

+0

你可以發佈如何做的代碼? – user1167572

+1

不,請先嚐試一下自己 – Evert

+0

碰到一條舊線程但是WTH Evert?!?你在這裏炫耀或幫助別人嗎?!? – user3806613