PHP无法从ActionScript3接收参数

PHP无法从ActionScript3接收参数,php,mysql,actionscript-3,flash,actionscript,Php,Mysql,Actionscript 3,Flash,Actionscript,我已经建立了一个网站,并与actionscript进行了沟通。在actionscript中,我构建了一个函数来调用php函数并为mysql数据库中的加载数据发布一个变量。问题是当我调用actionscript函数并向php发布变量时。php端我调用$_post['action'];对于从actionscript端接收变量,但当我想查看此帖子时,$_Post['action'];是这样的错误吗 Notice: Undefined index: action in C:\wamp\www\MPA-E

我已经建立了一个网站,并与actionscript进行了沟通。在actionscript中,我构建了一个函数来调用php函数并为mysql数据库中的加载数据发布一个变量。问题是当我调用actionscript函数并向php发布变量时。php端我调用$_post['action'];对于从actionscript端接收变量,但当我想查看此帖子时,$_Post['action'];是这样的错误吗

Notice: Undefined index: action in C:\wamp\www\MPA-EM\bin\model.php on line 3
这是一个调用php的动作脚本函数:

   public function SelectData(TBN:String,TYPE:String):void{
        var myrequest:URLRequest = new URLRequest("http://localhost/MPA-EM/bin/model.php");
        myrequest.method = URLRequestMethod.POST;

        var variables:URLVariables = new URLVariables();
        variables.tablename = TBN;
        variables.action = TYPE;
        myrequest.data = variables;

        var loader:URLLoader = new URLLoader();
        loader.dataFormat = URLLoaderDataFormat.VARIABLES;
        loader.addEventListener(Event.COMPLETE, dataOnLoad);
        loader.addEventListener(Event.CANCEL, dataError);

        try{
            loader.load(myrequest);
        }catch(e:Error){
            Alert.show(e.toString());
        }

    }

    public function dataOnLoad(evt:Event):void
    {
        Alert.show(evt.target.data.Result);
        if(evt.target.data.Result) {
            DText.text = 'ok';
        } else DText.text = "Error in select submitted data";

        //status is a custom flag passed from back-end
    }
    public function dataError(e:Event) :void{

        DText.text = e.target.errormsg;
    }
这是一个php函数端model.php:

<?php 
//test for recive
    $actionW = $_POST['action'];//error this line.
    echo $actionW;
// end test

if(isset($_POST['action']) && !empty($_POST['action'])) {
    $action = $_POST['action'];
    echo $action;
    switch($action) {
        case 'select' : 
                    $tablename = clean($_POST['tablename']);
                    selectedData($tablename);
                    break;

        case 'blah' : blah();break;
    }
}

function selectedData($table){
    // create connection
    $connection = mysql_connect("localhost", "root", "") or die ("Couldn't connect to the server.");

    // select database
    $db = mysql_select_db("ideaddcom_maps", $connection) or die ("Couldn't select database.");
    // create SQL
    $sql = 'SELECT * FROM '.$table;

    // execute SQL query and get result
    echo $sql;
    $sql_result = @mysql_query($sql, $connection) or die ("Couldn't execute query.".mysql_error());


    $row = mysql_fetch_object($sql_result);


    foreach($row as $cname => $cvalue){
        echo "Result=$cvalue";

     }

    // free resources and close connection
    mysql_free_result($sql_result);
    mysql_close($connection);

}

//Function to sanitize values received from the form. Prevents SQL injection
function clean($str) {
    $str = @trim($str);
    if(get_magic_quotes_gpc()) {
    $str = stripslashes($str);
    }
    return mysql_real_escape_string($str);
}



?>

怎么了?请对此有任何想法,谢谢。

我不知道您是否找到了解决问题的方法,但这可能会帮助其他人

1-看看这里,它可以帮助您:

2-为了避免PHP未定义索引的通知,您应该在使用之前始终验证您的var是否已设置,就像您在第7行所做的那样

3-避免PHP脚本中AS脚本未使用的所有输出,因为AS将只获得第一个输出

4-如果您使用for或foreach循环来获取PHP脚本中的数据,您应该这样做,因为将向AS发送数据的echo应该执行一次:

$result = '';
$sep = ',';
foreach($row as $cname => $cvalue){
    $result .= $cvalue . $sep;
}
echo 'Result='.$result;

粗略地看一眼,我认为variables.action=SELECT;未执行,这可能意味着SELECT未定义。你们能包括你们声明和初始化那个变量的地方吗?哦,是的,我记得那个条注释。我已经在初始化文件上方的“SELECT”字符串了。