![]() |
|
||||||||||
|
|||||
|
Вычитал в хелпе по Flash организацию обмена данными с базой данных через XML-запросы/ответы с помощью языка сценариев. Выбрал связку Apache+PHP+MySQL. НО! Не могу в PHP скрипте интерпертировать входной пакет от Flash. Посылаю из Flash как
методом POST. Вроде должна прийти строка вида
. На самом деле на вход PHP скрипта приходит массив, содержащий строку
"testfield" password="asd" username="das" /> Ещё пробовал не выпендриваться и пользовать LoadVars и метод GET - всё работает, всё понятно. Но, люди!, если же можно делать обмен данными через XML и это уже делается где-то, то я тоже так хочу. И вроде в книгах это есть, но до книг доступа нет и покупать их не хочу и не буду. В общем, посоветуйте, что делать: не выпендриваться или всё-таки реализовать XML-сервер и если реализовать, то как? У меня всё почти есть, кроме несчастной обработки входящего XML на стороне PHP скрипта.
__________________
нет ничего лучше, как наслаждаться человеку делами своими: потому что это–доля его Последний раз редактировалось MapcuaHuH; 27.05.2004 в 23:20. |
|
|||||
|
НАГНАЛ!
метод GET тоже не работает. В браузере ввожу строку с параметрами - скрипт обрабатывает и выдаёт запрос, а из Flash параметры не читает (?!). Переменная $_GET пустая. Не понял я ничего. Ещё ответы возвращает в кодах вместо символов - там, %20 вместо пробела и пр. И XML-RPC выдал, что я ему неправильно отформатированный XML сую.
__________________
нет ничего лучше, как наслаждаться человеку делами своими: потому что это–доля его |
|
|||||
|
http://www.php.net/urldecode пробывал?
|
|
|||||
|
Аллилуйя, братья!
НАШЁЛ! http://www.tupps.com/flash/faq/xml.html Оказалось, надо изменить тип на "text/xml": вместо "application/x-www-form-urlencoded". И тогда в PHP можно выловить строку из $HTTP_RAW_POST_DATA. Всё! Приступаю к работе. Спасибо за внимание.
__________________
нет ничего лучше, как наслаждаться человеку делами своими: потому что это–доля его |
|
|||||
|
я потом ещё долго не мог понять, почему обратно ответ не доходит (PHP -> Flash). Оказалось, параметры тегов надо в кавычки обязательно брать:
print "<TAG attr1='val1' attr2='val2'>"; а не: print "<TAG attr1=val1 attr2=val2>". Хотя это было для меня неочевидно. Вот и всё.
__________________
нет ничего лучше, как наслаждаться человеку делами своими: потому что это–доля его |
|
|||||
|
Опять застрял, на этот раз с передачей переменной из одного сценария в другой. В одном запускаю session_start(); глобализую мою переменную $id путём session_register("id");... а при вызове другого сценария массив $_SESSION оказывается пуст.
сверял session_id() в обоих сценариях - одинаковые. В первом сценарии после глобализации специально проверил, что переменная записалась в $_SESSION. PHP настроен (localhost) на сохранение в /tmp, даже установил register_globals = On.В чём тут дело?
__________________
нет ничего лучше, как наслаждаться человеку делами своими: потому что это–доля его Последний раз редактировалось MapcuaHuH; 30.05.2004 в 10:20. |
|
|||||
|
Убедись что в session.save_path в php.ini абсолютный путь к существующей папке.
session_start надо делать во всех скриптах где планируется пользоваться сессиями. Последний раз редактировалось kompadre; 31.05.2004 в 11:08. |
|
|||||
|
Точно, kompadre, именно путь я и не прописал, как надо. Исправил на абсолютный, убедился, что в той папке создаются файлы. И session_start() выполняю в каждом сценарии.
Но, хоть и массив $_SESSION перестал быть пустым, и там я вижу зарегистрированную переменную, но её значение пусто. Опять непонятно. Может есть разница, когда определяется переменная, до session_register() или после?
__________________
нет ничего лучше, как наслаждаться человеку делами своими: потому что это–доля его |
|
|||||
|
Сам себе же и отвечаю, но всё равно есть чем поделиться.
В результате множества экспериментов остановился на таком единственном рабочем у меня решении: (программа роется в базе, а потом пишет в неё) // script1:
//
$arr = mysql_fetch_array($result, MYSQL_ASSOC);
$id = $arr["id"];
...
session_start();
session_register("id");
$_SESSION['id'] = $id;
__________________
нет ничего лучше, как наслаждаться человеку делами своими: потому что это–доля его Последний раз редактировалось MapcuaHuH; 31.05.2004 в 23:58. |
|
|||||
|
"Вождь"
|
$arr = mysql_fetch_array($result, MYSQL_ASSOC);
$id = $arr["id"]; думаем про list(), если не думал. может захочешь. session_register("id"); $_SESSION['id'] = $id; вспоминаем реджистр глобалз в позиции офф и понимаем, что второй строчки достаточно.
__________________
а мы летим орбитами путями не избитыми... |
![]() |
Часовой пояс GMT +4, время: 12:35. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|