Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   xml на сервер (http://www.flasher.ru/forum/showthread.php?t=211770)

Dmitriy154 04.11.2015 23:20

xml на сервер
 
Подскажите, отправляю xml на сервер. PHP обработчик не хочет обрабатывать, вроде все правильно.
Но 5 строчка -
Fatal error: Call to undefined function domxml_open_file() in /home/virtwww/.../gamescores.php on line 5
PHP код:

<?php 
// Читаем XML из Raw Post Data. 
$xml $GLOBALS['HTTP_RAW_POST_DATA']; 
// Обрабатываем XML, используя расширение DOM PHP. 
$document domxml_open_mem($xml); 
// Читаем корневой элемент <gaminfo>. 
$rootElement $document->root( ); 
// Читаем дочерние узлы <username> и <score>. 
$childNodes $rootElement->children( ); 
$data ""
// Перебираем дочерние узлы и помещаем их в массив. 
foreach($childNodes as $childNode){ 
// Добавляем данные в массив; 
$name $childNode->tagName( ); 
$value $childNode->get_content( ); 
$data[$name] = $value

// Добавляем данные в scores.txt ( формат: usernamelscore) 
$fp fopen("scores.txt""a+"); 
$dataString $data['username'] . "|" $data['score'] . "\n"
fputs($fp,$dataString,strlen($dataString)); 
fclose($fp); 
// Возвращаем код успешности операции во Flash 
echo "<success>1</success>"
?>


Godwarlock 04.11.2015 23:37

Судя по всему в текущей твоей версии php нету функции domxml_open_file.

alexandrratush 04.11.2015 23:41

Какая версия PHP? Слышал, что в 5 версии вашу функцию заменили.

Dmitriy154 05.11.2015 00:22

спрашивал у админов, сказали, что DOM PHP поддерживает, функция domxml_open_mem новая , раньше была xmldoc. (http://www.php.su/functions/?domxml-open-mem)/
Отправили меня поддержка сюда. Буду изучать, и еще сказали, что, какбы у меня PHP 5.2, а функция из php 4.

exsites 05.11.2015 01:58

А зачем xml отправлять на сервер????? Я понимаю принимать данные с сервера в xml. Но отправлять по моему это уже извращение. Отправляйте POST данные и рассовывайте из куда надо.

Dmitriy154 05.11.2015 09:36

согласен, геморрой, только каким образом хранить данные пользователей, использовать БД или xml лучше?

caseyryan 05.11.2015 09:57

базу данных конечно

Dmitriy154 05.11.2015 10:25

mysql?

Zebestov 05.11.2015 10:27

Почему нет?!

exsites 05.11.2015 10:42

Кто какую базу лучше знает, ту и удобнее...
Это как самая короткая дорога которую знаешь.
Можно и в файловую систему писать. Все зависит от того что на выходе получить надо.

udaaff 05.11.2015 12:21

Цитата:

согласен, геморрой
Почему не использовать более удобный инструмент, http://www.silexlabs.org/amfphp/ ?

Dmitriy154 05.11.2015 13:54

только как с этим делом разобраться и чем он удобен?

udaaff 05.11.2015 14:27

https://ru.wikipedia.org/wiki/Action_Message_Format
https://github.com/silexlabs/amfphp-2.0

В двух словах если, то на стороне сервера пишутся сервисы, которые выполняются определенные функции, принимают/возвращают нативные объекты, в том числе типизированные.

На пример:
Код AS3:

public class ResultVO
{
 
    static public function register():void
    {
        registerClassAlias("ResultVO", ResultVO);
    }
 
    public var userID:int;
    public var score:int;
 
}

Код AS3:

_connection = new NetConnection();
_connection.addEventListener(NetStatusEvent.NET_STATUS, _connection_netStatusHandler);
_connection.connect(gateway); // http: //yourserver.ru/Amfphp/

Код AS3:

var responder:Responder = new Responder(resultHandler, faultHandler);
_serverConnection = ServerConnection.getInstance();
// method - "GameService/writeResult", _serverConnection.authArgs, _args - какие-то аргументы,
// которые передаём методу
_serverConnection.connection.call.apply(null, [ "GameService/writeResult", responder, resultVO ]);
//_serverConnection.connection.call.apply(null, [ _method, responder ].concat(_serverConnection.authArgs, _args));
_serverConnection.connection.addEventListener(NetStatusEvent.NET_STATUS, connection_netStatusHandler);

PHP код:

<?php

class ResultVO {
    
    
/**
     * @var int
     */
    
public $userID;
    
    
/**
     * @var int
     */
    
public $score;
    
    public 
$_explicitType "ResultVO";
}

PHP код:

<?php

class GameService {
    
    public function 
writeResult($result) {
        
// запись результата
    
}


Dmitriy154 05.11.2015 15:07

спасибо большое, буду разбираться. Еще также интересная статья тут только старая. Хотя разбираться не буду, для меня тяжеловато

exsites 05.11.2015 19:49

Делайте на AJAX+PHP+MySQL это самый простой вариант.

caseyryan 06.11.2015 09:19

Цитата:

Сообщение от Dmitriy154 (Сообщение 1188650)
mysql?

Это самый простой и доступный вариант

Dmitriy154 06.11.2015 09:39

Цитата:

Сообщение от caseyryan (Сообщение 1188698)
Это самый простой и доступный вариант

Да, согласен, самый крутой велосипед

udaaff 06.11.2015 11:24

Цитата:

Хотя разбираться не буду, для меня тяжеловато
Абсолютно ничего сложного для понимания.

caseyryan 06.11.2015 13:01

Цитата:

Сообщение от exsites (Сообщение 1188684)
Делайте на AJAX+PHP+MySQL это самый простой вариант.

Зачем тут AJAX если речь о флеше? Он отлично умеет все это делать без аджаксов всяких


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

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