2012-01-24 154 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