Flash和php会话共享?

时间:2012-01-24 17:58:02

标签: php mysql actionscript-3

我已经建立了一个网站,并在其中加入了一个Flash游戏。

对于玩游戏的人来说,他们必须登录网站。

登录网站将创建会话。我想让flash游戏获得会话ID,

所以我创建了一个获取会话ID的函数。它仅适用于Internet Explorer和

当我在Chrome中试用它时,它没有检索会话ID。

那么有什么帮助吗?

我已经写了一个php文件,as3将使用它获取会话ID,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中尝试使用闪光灯时,闪光灯获得了正确的会话ID,但在Chrome中却没有。

2 个答案:

答案 0 :(得分:0)

您可以尝试将存储在cookie中的会话标识符传递给嵌入式Flash,然后将Flash作为参数传递给服务器,以识别和初始化会话。

答案 1 :(得分:0)

我在5年前写过这篇文章:

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

我的最终解决方案是使用替代令牌(与会话cookie不同,以确保安全性)。令牌将作为flashvar嵌入到标记中。然后,Flash播放器将随每个HTTP请求手动发送此令牌。

最后,在服务器上,我会将令牌与真实会话ID匹配,并调用session_id()/ session_start()。