繁体   English   中英

如何在Flash AS3和PHP之间共享会话?

[英]How to share session between flash AS3 and PHP?

Flash的登录页面,用户会将用户名和密码发送到php文件(login.php)。 如果登录成功,它将返回echo“ success”并在那里创建会话。 然后在瞬间,当我单击购物按钮时,它将转到www.domain.com/shopping/index.php,该index.php将进行一次会话以检查访问者是否已登录。 但似乎,我需要再次登录才能进入页面。 在login.php中创建的会话变量在哪里?

如何在Flash和PHP之间共享会话变量?

我知道了。

您可以从Flash到PHP进行异步调用以获取会话。 例:

在您的Actionscript.as中:

    public function session(continuation:Function)
    {
        var request:URLRequest = new URLRequest("backend.php");
        var loader:URLLoader = new URLLoader();
        loader.addEventListener(Event.COMPLETE, continuation);
        loader.load(request);
    }

    public function function_that_uses_session()
    {
        this.session(function(evt:Event)
        {
            var omg_session = evt.target.data;
        }
    }

在您的backend.php中

 <?php echo $_SESSION['id']?>

您也可以执行JSON语法(如果您是受虐狂,请执行XML)来获取更复杂的数据结构。 剩下的就是你的想象力;)

希望我现在还不晚于解决您的答案

听起来可能不是闪光灯问题? 您可以测试一下会话数据是否在两个普通页面之间持久保存吗?

至于在PHP和ActionScript之间共享变量,最好的办法是设置AMF远程服务器 您可以使用Remoting Framework将请求发送到服务器,并获取本机ActionScript对象作为响应。 PHP应该能够跟踪用户会话并使用会话相关数据响应AMF请求。

希望这可以帮助!

当您向PHP发送请求时,Flash应该将当前会话ID传递给它,不幸的是Flash并没有这样做,因此需要将会话ID作为URL变量传递给php页面,以便您的php获得该会话。 有关更多信息,请检查此。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM