这里我将会话值传递给AS3,但我不想像HTML代码那样发送页面的任何其他内容或内容,另一方面我不想让用户看到会话: x 在页面上。
<?php
session_start();
$session = $_SESSION['myusername'] ;
if(!isset( $_SESSION['myusername'])){
header('location:../login.html');
} else{
echo "session:".$session;
header('location:speaking.html');
}
?>
<html>
<!-- some HTML code-->
</html>
更新:
var sesname:String;
var loader : URLLoader = new URLLoader();
var req:URLRequest = new URLRequest("http://localhost/speaking.php");
loader.dataFormat = URLLoaderDataFormat.VARIABLES;
loader.load(req);
loader.addEventListener(Event.COMPLETE, connectComplete);
function connectComplete(event:Event):void{
var session:String = event.target.data;
sesname= session;
trace(sesname);
nextFrame();
}
答案 0 :(得分:0)
取决于您的AS3代码的外观,您可以在查询中添加参数以将其与用户区分开来并使用它在PHP中检测它:
urlVars = new URLVariables();
urlReq.data = urlVars;
urlVars.as3 = 1;
在您的代码中:
} elseif($_GET['as3']) {
echo "session:".$session;
header('location:speaking.html');
}
在echo()
之后,您可以使用exit()
来停止执行php / html代码。
答案 1 :(得分:0)
PHP和AS3之间的通信如下所示。
首先,在php中启动会话并在html中输出swf flash对象。在您的情况下,我认为没有必要将会话变量传递给对象。
<?php
session_start();
// some other codes
?>
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="550" height="400" id="myFlashMovie" align="middle">
<param name="movie" value="myFlashMovie.swf" />
</object>
其次,在swf flash对象中,AS3加载一个php脚本,如果从AS3调用它,它将仅返回名称 - 值对(注意fromFlash
查询字符串)。
var req:URLRequest = new URLRequest("http://localhost/speaking.php?fromFlash=1");
第三,在speaking.php
中,仅输出包含必要名称 - 值对的字符串。您可能需要urlencode
该值。
<?php
session_start();
$session = $_SESSION['myusername'];
if(!isset( $_SESSION['myusername'])) {
header('location:../login.html');
} else {
if (isset($_GET['fromFlash']) && $_GET['fromFlash'] == 1) {
echo "sessionVar=" . $_SESSION['myusername'];
exit;
} else {
echo "session:".$session;
header('location:speaking.html');
}
}
?>
<html>
<!-- some HTML code-->
</html>
最后,AS3从被叫speak.php中提取数据。请注意,sessionVar
变量与echo "sessionVar=" . $_SESSION['myusername'];
// this is the same swf object in step 2
var req:URLRequest = new URLRequest("http://localhost/speaking.php?fromFlash=1");
loader.addEventListener(Event.COMPLETE, connectComplete);
function connectComplete(event:Event):void{
var variables:URLVariables = new URLVariables();
trace(variables.sessionVar);
nextFrame();
}