Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   amfphp и as3. Ошибка NetConnection.Call.BadVersion (http://www.flasher.ru/forum/showthread.php?t=192408)

Frost47rus 13.01.2013 17:26

amfphp и as3. Ошибка NetConnection.Call.BadVersion
 
Всем доброго времени суток.

amfphp скачана отсюда:
http://www.silexlabs.org/amfphp/downloads/

Код as3:
Код AS3:

public class Main extends Sprite {
 
                private var nc:NetConnection;
 
                public function Main():void {
                        if (stage) init();
                        else addEventListener(Event.ADDED_TO_STAGE, init);
                }
 
                private function init(e:Event = null):void {
                        removeEventListener(Event.ADDED_TO_STAGE, init);
                        nc = new NetConnection();                                               
                        nc.connect('http://server.ru/games/');                       
                        nc.call('Test/foo', new Responder(onTest));
                }               
 
                private function onTest(e:*):void {
                        trace('1');
                }
 
        }

Код php:
PHP код:

<?php
class Test{
    
    function 
foo(){
        return 
'123';
    }

}
?>

Test лежит в Services.
Возникает ошибка
Код AS3:

Error #2044: Необработанный NetStatusEvent:. level=error, code=NetConnection.Call.BadVersion

При этом, есть другой класс NetTest.php, в котором всё ровно то же самое, и всё прекрасно работает.
При том, что Test - это скопированный класс из NetTest.
Кто-нибудь может подсказать в чём проблема?

AlexCooper 13.01.2013 17:28

http://www.flasher.ru/forum/showthread.php?t=186623
Смотрите мой пост в самом низу.

Frost47rus 13.01.2013 17:44

Не вижу ничего, чем бы отличался Ваш код.
Я написал, что есть точно такой же класс, с другим именем, который исправно работает.
Действия при создании файлов - были одинаковыми.

Добавлено через 1 минуту
UPD: проблема в кодировках. UTF-8, созданный через notepad++ - не работает. ANSI - все в порядке.

AlexCooper 13.01.2013 17:48

Я незнаю в чём там у вас проблема я выложил рабочий класс + рабочий амф. Что Вам еще нужно? А для серверных скриптов используйте хотя бы php expert editor

Frost47rus 13.01.2013 18:08

Ваш код так же не работает в UTF-8. Только в ANSI.

wvxvw 13.01.2013 18:51

Суть проблемы в том, что, скорее всего, кроме необходимого содержания PHP отправляет еще что-то, например BOM (ByteOrder Mark), или заголовки какие-то, о которых вы не подозревали, или сообщение об ошибке (по необъяснимым причинам PHP-писатели часто стараются послать все ошибки клиенту, при чем, желательно, с частичным HTML форматированием).
Проверьте чем-нибудь, что именно вам приходит в качестве ответа. Есть всякие инструменты, которые могут просматривать траффик, например, Charles, но можно и просто tcpdump / Wireshark - этого обычно достаточно, чтобы обнаружить ошибку.
Скорее всего вам нужно настроить PHP интерпретатор, чтобы он работал с файлами, в которых есть BOM. На сколько я понимаю, нужно в php.ini mbstring.internal_encoding указать, что нужно использовать UTF-8. или default_charset = "utf-8" во все том же файле?.. Вобщем PHP - дело темное, с Юникодом у него до сих пор много головной боли...

Frost47rus 14.01.2013 00:52

Цитата:

Сообщение от wvxvw (Сообщение 1115486)
Суть проблемы в том, что, скорее всего, кроме необходимого содержания PHP отправляет еще что-то, например BOM (ByteOrder Mark), или заголовки какие-то, о которых вы не подозревали, или сообщение об ошибке (по необъяснимым причинам PHP-писатели часто стараются послать все ошибки клиенту, при чем, желательно, с частичным HTML форматированием).
Проверьте чем-нибудь, что именно вам приходит в качестве ответа. Есть всякие инструменты, которые могут просматривать траффик, например, Charles, но можно и просто tcpdump / Wireshark - этого обычно достаточно, чтобы обнаружить ошибку.
Скорее всего вам нужно настроить PHP интерпретатор, чтобы он работал с файлами, в которых есть BOM. На сколько я понимаю, нужно в php.ini mbstring.internal_encoding указать, что нужно использовать UTF-8. или default_charset = "utf-8" во все том же файле?.. Вобщем PHP - дело темное, с Юникодом у него до сих пор много головной боли...

Спасибо. Да, дело действительно в BOM. Как от него избавиться - я решил не думать, а оставить ANSI. =)


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

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