Flash отправляет 2 переменные в php скрипт, 1 из которых - xml - PullRequest
1 голос
/ 02 октября 2011

Так что это, вероятно, простой вопрос, но по какой-то причине у меня проблемы с этим. Я понятия не имею, почему, но я подозреваю, что отправка xml с полными тегами «что-то» может привести к неправильному поведению php.

Так что все, что мне нужно, это отправить (от клиента swf as3) имя файла и xml. PHP напишет файл XML с требуемым именем файла.

Все должно быть в порядке со стороной php, потому что я пробовал использовать переменные "$ _GET", но всякий раз, когда я пытаюсь использовать флэш-клиент, это просто делает работу, и журнал php говорит, что "переменная имени файла не может быть пустым ". Всякий раз, когда я пытаюсь использовать статическое имя файла (не используя GET или POST), оно работает.

Ооо ... Может кто-нибудь помочь мне с этим? Спасибо.

РЕДАКТИРОВАТЬ: Код добавлен.

var xmlURLReq:URLRequest = new URLRequest("www.url.com");
    var test:URLVariables = new URLVariables;
    test.filename = "01.xml";
    test.xmldata = xmltosave;
    xmlURLReq.data = teste;
    xmlURLReq.contentType = "text/xml";
    xmlURLReq.method = URLRequestMethod.POST;

    var xmlSendLoad:URLLoader = new URLLoader();
    xmlSendLoad.addEventListener(Event.COMPLETE, onComplete, false, 0, true);
    xmlSendLoad.addEventListener(IOErrorEvent.IO_ERROR, onIOError, false, 0, true);
    xmlSendLoad.load(xmlURLReq);

    var alertBox:alertBoxClass = new alertBoxClass();
    alertBox.x = 0;
    alertBox.y = 200;

    function onComplete(evt:Event):void 
    { 
        try 
        {
            var xmlResponse = new XML(evt.target.data);
            alertBox.alertText.text = "Inserção de dados bem sucedida!";
            addChild(alertBox);
            removeEventListener(Event.COMPLETE, onComplete);
            removeEventListener(IOErrorEvent.IO_ERROR, onIOError);
            writeXML()
        }
    }

Я также попробовал классы Object и LoadVars вместо URLVariables, пока что не повезло.

РЕДАКТИРОВАТЬ: Можно также добавить код php.

<?php
    $filename = "http://url.com/".$_POST["filename"];
    $xml = $_POST["xmldata"];
    $file = fopen($filename , "wb");
    fwrite($file, $xml);
    fclose($file);
?>

1 Ответ

2 голосов
/ 03 октября 2011

Я вижу одну возможную проблему в вашем коде; Вы устанавливаете данные для экземпляра URLVariables, а для contentType - "text / xml". При использовании URLVariables он должен быть «application / x-www-form-urlencoded».

http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/net/URLRequest.html#contentType

Надеюсь, что это решит!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...