Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Отправка данных POST в XML формате (http://www.flasher.ru/forum/showthread.php?t=113566)

Leonik 02.07.2008 16:13

Отправка данных POST в XML формате
 
кароче... пролистал все мануалы.... делал и ноль рзультата...

либо дайте ссылку (желательно русккую) или обьясните как работать с отправкой и получением данных (XML формат данных на мой взгляд самый подходящий)

Код:

import flash.net.*;
import flash.events.*;

stage.showDefaultContextMenu = false;

var data:XML =
        <body>
                <id>0</id>
                <hash>testhash</hash>
                <lastactive>testtime</lastactive>
        </body>;

var mess:String;

var req:URLRequest = new URLRequest( "http://localhost/cms3/auth" );
req.contentType = "text/xml";
req.method = URLRequestMethod.POST;
req.data = data;
var loader = new URLLoader();
loader.addEventListener( Event.COMPLETE, action );

var check:Boolean = false;
try{ loader.load( req ); mess = "connected"; check = true; }
catch ( e:ArgumentError ){ mess = e.message; }
catch ( e:SecurityError ){ mess = e.message; }

function action( e:Event):void
{
        trace( XML( loader.data ) );
        trace( mess );
}

сервер PHP выдает $_POST пустым массывом :(

ramshteks 02.07.2008 16:18

ты попробуй отправить гетом, если твой пхп примет то что ты отправил то знач проблема во флешке, если нет, то проблему стоит поискать в обоих скриптах)

Alex Lexcuk 02.07.2008 16:34

Неужели все и гостевую книгу в РНР готовые решения?
И "0" результатов?

Leonik 02.07.2008 16:38

Цитата:

Сообщение от ramshteks (Сообщение 749522)
ты попробуй отправить гетом, если твой пхп примет то что ты отправил то знач проблема во флешке, если нет, то проблему стоит поискать в обоих скриптах)

гетом можно отправлять только однострочные небольшие данные, а тут ещё ожидаются огромные передачи данных (текстовых) для построения контента.


Цитата:

Сообщение от Alex Lexcuk (Сообщение 749533)
Неужели все и гостевую книгу в РНР готовые решения?
И "0" результатов?

нету примера, скинь плиз ( deol@olympus.ru )

Leonik 02.07.2008 21:16

тема АП!... в коде есть ошибки?... скиньте пример плиз!

Alex Lexcuk 02.07.2008 21:20

http://www.flasher.ru/forum/showthread.php?t=113083

Какие ошибки вы там нашли?

etc 02.07.2008 23:21

Leonik получает плюс за ап.

Leonik 03.07.2008 00:06

Цитата:

Сообщение от Alex Lexcuk (Сообщение 749623)
http://www.flasher.ru/forum/showthread.php?t=113083

Какие ошибки вы там нашли?

спасибо! причину я нашел...
вобщем дело в сервере (PHP) при посылке XML на сервер, сам сервер его получает в RAW сыром веди как я понял, вытаскиваются все данные в виде $GLOBALS["HTTP_RAW_POST_DATA"] а не в $_POST как я думал...

вот пример нашёл:

AS3
Код:

// Generate a random score to save with the username
      var score:int = Math.floor( Math.random(  ) * 10 );
     
      // Create a new XML instance containing the data to be saved
      var dataToSave:XML = <gamescore>
                            <username>{_username.text}</username>
                            <score>{score}</score>
                          </gamescore>;
     
      // Point the request to the script that will handle the XML
      var request:URLRequest = new URLRequest( "http://www.sd-ii.fr/gamescores.php" );
      // Set the data property to the dataToSave XML instance to send the XML
      // data to the server
      request.data = dataToSave;
      //request.data = variables;
      // Set the contentType to signal XML data being sent
      request.contentType = "text/xml";
      // Use the post method to send the data
      request.method = URLRequestMethod.POST;
     
      // Create a URLLoader to handle sending and loading of the XML data
      var loader:URLLoader = new URLLoader(  );
      // When the server response is finished downloading, invoke handleResponse
      loader.addEventListener( Event.COMPLETE, handleResponse );
      // Finally, send off the XML data to the URL
      loader.load( request );


PHP
Код:

// Read In XML from Raw Post Data.
$xml = $GLOBALS['HTTP_RAW_POST_DATA'];
   
// Process XML using DOM PHP extension.
$document = xmldoc($xml);
   
// Read root element <gameinfo>.
$rootElement = $document->root(  );
   
// Read child nodes <username> and <score>.
$childNodes = $rootElement->children(  );
   
$data = "";
   
// Loop through child nodes and place in array.
foreach($childNodes as $childNode){
  // Add data to array;
  $name = $childNode->tagName(  );
  $value = $childNode->get_content(  );
  $data[$name] = $value;
}
   
// Append data to scores.txt ( format: username|score )
$fp = fopen("scores.txt","a+");
$dataString = $data['username'] . "|" . $data['score'] . "\n";
fwrite($fp,$dataString,strlen($dataString));
fclose($fp);
   
// Return success code to Flash
echo "<success>1</success>";

ссылка http://www.actionscript.org/forums/s....php3?t=169554

также можно к ссылке запроса добавлять время что бы обойти хеширование (тут я ещё не до конца допёр как имео хеширование происходит)

можно даже тему перекинуть на серверные технологии


Часовой пояс GMT +4, время: 06:40.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.