从as2到PHP的XML

时间:2014-05-26 20:24:10

标签: php xml flash actionscript-2

我正在研究一些旧的Flash as2应用程序,它可以正常工作直到发生。 最有可能是它的Flash 13升级,但我无法弄清楚原因。 服务器上的PHP版本没有改变。

我在Flash中有以下函数,它将XML与另一个函数打包在一起并发送到printcard.php:

var xmlDoc:Object=toXML();
xmlDoc.send(_global.phpPath + "printcard.php","_blank");

printcard.php应该使用$ _POST XML并使用它做一些工作......

$data = GET_POST_XML();

$xml = new XML($data);

$arrCardPage = $xml->getBranches("card", "CardPage"); 

$cardPage = $arrCardPage[0];

真正古老的GET_POST_XML()函数直到最近一直运行良好:

global $HTTP_POST_VARS, $HTTP_RAW_POST_DATA;

if( $HTTP_RAW_POST_DATA == null || !isset($HTTP_RAW_POST_DATA) ){
    $xmldoc = '';
    reset($HTTP_POST_VARS);

    while(list($k, $v) = each($HTTP_POST_VARS)) {
    $xmldoc.=$k.'='.$v;
    };

    $xmldoc = stripslashes($xmldoc);

    $xmldoc = str_replace('<?php xml_version', '<?php xml version', $xmldoc);

    return $xmldoc;

} else {
        return $HTTP_RAW_POST_DATA;
 };

问题是$ data是空的 - 我没有XML。

在phpinfo上我有:

_POST["<card_id"]:
\"0\" shared=\"0\" doubleside=\"1\" BgColorPicker=\"0\" bwColors=\"1\" showBg=\"1\" name=\"\"><CardPage h=\"17.99\" w=\"46.99\"><layerFront><CardLayer bg=\"16777215\" bgImageURL=\"\"><elements><OvalElement bgAlpha=\"100\" lineAlpha=\"100\" bgColor=\"16777215\" lineColor=\"0\" lineSize=\"0.35\" useFill=\"true\" useLine=\"true\" rotation=\"0\" h=\"7.76\" w=\"22.93\" y=\"4.58\" x=\"22.57\" /></elements></CardLayer></layerFront><layerBack><CardLayer bg=\"16777215\" bgImageURL=\"\"><elements /></CardLayer></layerBack></CardPage></card>

我错过了什么?

2 个答案:

答案 0 :(得分:1)

使用

groupIP

而不是

$data = file_get_contents('php://input');

答案 1 :(得分:0)

好的,这里有更新以防有人堆叠有同样的问题:

从Flash版本13弃用

发送命令。 它不再发送RAW POST DATA。

但是,SendAndLoad仍能正常工作。

无法在Google或官方Adobe发行说明中找到有关此内容的任何内容。