Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将会话变量从php传递到as3不起作用_Php_Actionscript 3 - Fatal编程技术网

将会话变量从php传递到as3不起作用

将会话变量从php传递到as3不起作用,php,actionscript-3,Php,Actionscript 3,我试图在flash中将会话变量从php传递到as3,但它不起作用。 实际上,它比下面的代码更复杂,但我尽量简化它,以确定问题所在 php代码: <?php session_start(); $name=""; if(isset($_POST['myrequest']) && $_POST['myrequest'] == "get") { if(isset($_SESSION["currentuser"])) { $name=preg_re

我试图在flash中将会话变量从php传递到as3,但它不起作用。 实际上,它比下面的代码更复杂,但我尽量简化它,以确定问题所在

php代码:

<?php

session_start();
$name="";

if(isset($_POST['myrequest']) && $_POST['myrequest'] == "get")
{
    if(isset($_SESSION["currentuser"]))
    {
        $name=preg_replace('#a-z0-9#i',' ',$_SESSION["currentuser"]);
    }

    error_reporting(E_ALL ^ E_DEPRECATED);
    $link=mysql_connect('localhost','root','');
    mysql_select_db('flash');
    $query2=mysql_query("select * from `account1`where name='$name' " );
    $num2=mysql_num_rows($query2);

    if($num2 > 0)
    {
        echo "var11=$name";
        exit ();
    }
    else
    {
        echo "var_2=no notes recorded for that lesson";
    }

    @mysql_close($link);
}
?>
当我运行swf时,它只跟踪(var_2),没有找到会话变量(var11)。
当我在没有
if(isset($\u POST['myrequest'])和&$\u POST['myrequest']==“get”)
的情况下运行php文件时,它会在本地主机上正确地发布会话变量,不会出现问题,因此我认为as3和php之间的通信存在问题,不是在php中。

您是否尝试过访问
http://localhost.ses2.php
是否在浏览器中查看响应?看看您的PHP,您有一个if语句,它使您只得到一个或另一个(
var11
var_2
)。如果您得到的是var_2,那么明显的原因是您的SQL查询没有返回任何行(这不是flash和PHP之间的通信问题)是的,我尝试过。它正在本地主机上运行并发布会话变量,但它无法将会话变量传递给as3。为什么?可能是因为当您从flash访问它时,php应用程序上没有创建会话。您的swf是否与创建会话的其他php工具在浏览器(同一窗口)中运行?不,我也在php的同一浏览器中运行它,但它不工作。请稍候。您在第一条评论中的意思是使用as3?的if请求语句运行ses2.php。我误解了您的意思。抱歉,我再次尝试您的意思,并使用完整的代码运行ses2.php,并且它没有发布任何变量var11和var_2
var variables:URLVariables=new URLVariables();
var varsend:URLRequest=new URLRequest("http://localhost/ses2.php");
varsend.method=URLRequestMethod.POST;
varsend.data=variables;
var varloader:URLLoader=new URLLoader;
varloader.dataFormat=URLLoaderDataFormat.VARIABLES;
varloader.addEventListener(Event.COMPLETE,completehandler);
variables.myrequest="get";
varloader.load(varsend);

function completehandler(event:Event):void
{
    trace(event.target.data.var11);
    trace(event.target.data.var_2);
}