PDA

Просмотр полной версии : Flash+PHP не работают на разных серваках


Nikolay437
29.01.2012, 19:01
Всем привет!
Знаю, что подобные темы здесь уже были, но они мне не помогли, как и не помог гугл за целую неделю.
Суть: флешка с пхп работают, только если находятся в одном месте. А нужно чтоб пхп лежал на одном сервере и флеш с любого другого нормально с ним связывался. Для теста есть флешка со следующим кодом:

var lv:LoadVars = new LoadVars ();
bt.onRelease = function () {
lv.message = "Hello!";
lv.sendAndLoad (_root.PHPpath.text,lv,"POST");
lv.onData = function (text:String):Void {
pole.text = text;
};
};
System.useCodepage = true;

Для удобства сделал поле PHPpath, в которое пишется собственно путь к php-файлу. при нажатии "отправить" скрипту отправляется переменная со значением Hello! и если всё правильно, этот текст возвращается флешке и выводится во втором поле.
php такой:

<?php
$mess = $_POST['message'];
echo "$mess";
?>

Сама флешка лежит на бесплатном хостинге http://rsportfolio.wallst.ru/test_flash.html
PHP сейчас нигде не лежит (сейчас не имею доступа к другому серверу, но раньше многократно проверял, не работало).
По советам создавал файл crossdomain.xml, пихал его во все возможные папки на обоих серверах - не помогло.
Может есть возможность отследить что именно не работает, может переменная всё таки передаётся, но не возвращается во флеш... Короче нужно как-то подобраться к решению, а то я уже несколько дней топчусь на одном месте, а проект сдавать через два дня.
И ещё работает всё в среде разработки. Т.е. я в самом CS5 нажимаю ctrl+Enter, пишу во флешке ссылку на пхп, расположенный на удалённом хостинге, нажимаю "отправить" и получаю ответ, как и полагается.
Вот такие дела. Заранее спасибо.

mooncar
29.01.2012, 20:24
По советам создавал файл crossdomain.xml, пихал его во все возможные папки на обоих серверах - не помогло.

Не надо во всевозможные папки и не надо на все сервера. Это файл системных политик, и значит его его надо класть на тот сервер с доменом, к которому вы хотите иметь доступ с другого домена (то есть к тому, к которому обращается флешка за скриптом).
Распакуйте и положите прикрепленный в конце этого сообщения файл в корневую директорию сервера с вашим скриптом.


Может есть возможность отследить что именно не работает


Есть. Установите на FireFox плагин HttpFox и следите за запросами. Когда флешка будет обращаться к скрипту в другой домен, вы должны увидеть запрос на этот файл. А потом и запрос на скрипт.
Там же, в последнем запросе, можно будет увидеть и передаваемые переменные, если есть сомнения.

Nikolay437
29.01.2012, 20:35
Большое спасибо за советы! Буду пробовать.

Добавлено через 4 часа 58 минут
Действительно, с crossdomain.xml всё заработало, до HttpFox и дело не дошло :confused:
Не понимаю, я сразу так и делал и подозреваю что не раз, а уже когда не заработало начал пихать его куда попало...
Столько времени потерял, что уже и не охота разбираться что не так было.
Mooncar, огромное спасибо за помощь!:drinks:

mooncar
30.01.2012, 03:42
Пожалуйста!