将PHP会话传递给ActionScript

时间:2011-03-29 04:29:22

标签: flash actionscript php

我有一个使用会话的php网站,如果你没有登录就无法访问网页......我希望我的Flash文件也一样,但想要flash看看php网站上是否有有效的会话如果有播放闪光灯,如果没有拒绝访问..!

如果他们下载了flash文件并且没有登录到PHP网站就无法播放该文件。


这是我的PHP会话I.D我想用于从PHP到Flash的验证..

$member = "{$_SESSION['SESS_MEMBER_ID']}";

这是我在每个页面上运行的PHP身份验证

//Start session
session_start();

//Check whether the session variable SESS_MEMBER_ID is present or not
if(!isset($_SESSION['SESS_MEMBER_ID']) || (trim($_SESSION['SESS_MEMBER_ID']) == '')) {
    header("location: access-denied.php");
    exit();
}

2 个答案:

答案 0 :(得分:2)

创建一个PHP页面,根据设置的用户会话返回一些url编码变量。

if(!isset($_SESSION['SESS_MEMBER_ID']) || (trim($_SESSION['SESS_MEMBER_ID']) == '')) {
    echo "&isLoggedIn=0";
}else{
    echo "&isLoggedIn=1";
}

将Flash文件添加到舞台后,使用URLLoader加载页面并根据其输出确定要执行的操作:

private function handleAddedToStage(e:Event):void
{

    var loader:URLLoader = new URLLoader();
    loader.addEventListener(Event.COMPLETE,handleLoaded);
    loader.dataFormat = URLLoaderDataFormat.VARIABLES;
    loader.load(new URLRequest('http://my.domain.com/isloggedin.php'));

}

private function handleLoaded(e:Event):void
{
    var loader = e.target as URLLoader;

    if(loader.data.isLoggedIn == 1)
    {
        //  Run animation
        runAnimation();
    }
    else
    {
        //  show access denied
        showAccessDenied();
    }   
}

答案 1 :(得分:0)

最近几乎不赞成使用Actionscript 2.0,所以我的AS2有点生疏,但希望这可以让你朝着正确的方向前进:

private function applicationReady():Void
{
   var loader:LoadVars = new LoadVars();
   loader.onLoad = handleLoaded;
   loader.load("http://my.domain.com/isloggedin.php");
}

private function handleLoaded(success:Boolean)
{
    if( success && this.isLoggedIn==1)
    {        
        //  Run animation
        runAnimation();
    }
    else
    {
        //  show access denied
        showAccessDenied();
    }
}