Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Архив Flasher.ru > Программирование > PHP

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 27.05.2004, 23:15
MapcuaHuH вне форума Посмотреть профиль Отправить личное сообщение для MapcuaHuH Посетить домашнюю страницу MapcuaHuH Найти все сообщения от MapcuaHuH
  № 1  
MapcuaHuH

Регистрация: Oct 2003
Адрес: Россия, Томск
Сообщений: 29
Отправить сообщение для MapcuaHuH с помощью ICQ
Attention Flash->PHP->MySQL->PHP->Flash

Вычитал в хелпе по Flash организацию обмена данными с базой данных через XML-запросы/ответы с помощью языка сценариев. Выбрал связку Apache+PHP+MySQL. НО! Не могу в PHP скрипте интерпертировать входной пакет от Flash. Посылаю из Flash как
Код:
LoginXML.sendAndLoad("http://.../test.php", ReplyXML);
методом POST. Вроде должна прийти строка вида
Код:
<LOGIN username="fio" password="pass" />
. На самом деле на вход PHP скрипта приходит массив, содержащий строку
Код:
&amp;quot;testfield&amp;quot; password=&amp;quot;asd&amp;quot; username=&amp;quot;das&amp;quot; /&gt;
(вывел функцией
Код:
foreach($_POST as $var) {
echo $var;
}
). И ничем его разобрать не могу. XML парсер (James Clark's expat) не помог - ничего не возвращает. DOM XML ничего не дал (специально установил PHP 5.0). Начал разбараться с XML-RPC - может это его вотчина, разбирать входящие пакеты.
Ещё пробовал не выпендриваться и пользовать LoadVars и метод GET - всё работает, всё понятно. Но, люди!, если же можно делать обмен данными через XML и это уже делается где-то, то я тоже так хочу. И вроде в книгах это есть, но до книг доступа нет и покупать их не хочу и не буду. В общем, посоветуйте, что делать: не выпендриваться или всё-таки реализовать XML-сервер и если реализовать, то как? У меня всё почти есть, кроме несчастной обработки входящего XML на стороне PHP скрипта.
__________________
нет ничего лучше, как наслаждаться человеку делами своими: потому что это–доля его


Последний раз редактировалось MapcuaHuH; 27.05.2004 в 23:20.
Старый 28.05.2004, 00:35
MapcuaHuH вне форума Посмотреть профиль Отправить личное сообщение для MapcuaHuH Посетить домашнюю страницу MapcuaHuH Найти все сообщения от MapcuaHuH
  № 2  
MapcuaHuH

Регистрация: Oct 2003
Адрес: Россия, Томск
Сообщений: 29
Отправить сообщение для MapcuaHuH с помощью ICQ
НАГНАЛ!

метод GET тоже не работает. В браузере ввожу строку с параметрами - скрипт обрабатывает и выдаёт запрос, а из Flash параметры не читает (?!). Переменная $_GET пустая.

Не понял я ничего. Ещё ответы возвращает в кодах вместо символов - там, %20 вместо пробела и пр.

И XML-RPC выдал, что я ему неправильно отформатированный XML сую.
__________________
нет ничего лучше, как наслаждаться человеку делами своими: потому что это–доля его

Старый 28.05.2004, 22:17
kompadre вне форума Посмотреть профиль Отправить личное сообщение для kompadre Найти все сообщения от kompadre
  № 3  
kompadre
 
Аватар для kompadre

Регистрация: Aug 2001
Адрес: Barcelona
Сообщений: 1,277
Отправить сообщение для kompadre с помощью ICQ
http://www.php.net/urldecode пробывал?

Старый 28.05.2004, 23:05
MapcuaHuH вне форума Посмотреть профиль Отправить личное сообщение для MapcuaHuH Посетить домашнюю страницу MapcuaHuH Найти все сообщения от MapcuaHuH
  № 4  
MapcuaHuH

Регистрация: Oct 2003
Адрес: Россия, Томск
Сообщений: 29
Отправить сообщение для MapcuaHuH с помощью ICQ
Аллилуйя, братья!

НАШЁЛ!

http://www.tupps.com/flash/faq/xml.html

Оказалось, надо изменить тип на "text/xml":
Код:
loginXML.contentType = "text/xml";
вместо "application/x-www-form-urlencoded". И тогда в PHP можно выловить строку из $HTTP_RAW_POST_DATA.

Всё! Приступаю к работе.

Спасибо за внимание.
__________________
нет ничего лучше, как наслаждаться человеку делами своими: потому что это–доля его

Старый 30.05.2004, 00:48
MapcuaHuH вне форума Посмотреть профиль Отправить личное сообщение для MapcuaHuH Посетить домашнюю страницу MapcuaHuH Найти все сообщения от MapcuaHuH
  № 5  
MapcuaHuH

Регистрация: Oct 2003
Адрес: Россия, Томск
Сообщений: 29
Отправить сообщение для MapcuaHuH с помощью ICQ
я потом ещё долго не мог понять, почему обратно ответ не доходит (PHP -> Flash). Оказалось, параметры тегов надо в кавычки обязательно брать:
print "<TAG attr1='val1' attr2='val2'>"; а не:
print "<TAG attr1=val1 attr2=val2>".
Хотя это было для меня неочевидно.

Вот и всё.
__________________
нет ничего лучше, как наслаждаться человеку делами своими: потому что это–доля его

Старый 30.05.2004, 10:19
MapcuaHuH вне форума Посмотреть профиль Отправить личное сообщение для MapcuaHuH Посетить домашнюю страницу MapcuaHuH Найти все сообщения от MapcuaHuH
  № 6  
MapcuaHuH

Регистрация: Oct 2003
Адрес: Россия, Томск
Сообщений: 29
Отправить сообщение для MapcuaHuH с помощью ICQ
Опять застрял, на этот раз с передачей переменной из одного сценария в другой. В одном запускаю session_start(); глобализую мою переменную $id путём session_register("id");... а при вызове другого сценария массив $_SESSION оказывается пуст. сверял session_id() в обоих сценариях - одинаковые. В первом сценарии после глобализации специально проверил, что переменная записалась в $_SESSION. PHP настроен (localhost) на сохранение в /tmp, даже установил register_globals = On.

В чём тут дело?
__________________
нет ничего лучше, как наслаждаться человеку делами своими: потому что это–доля его


Последний раз редактировалось MapcuaHuH; 30.05.2004 в 10:20.
Старый 31.05.2004, 11:03
kompadre вне форума Посмотреть профиль Отправить личное сообщение для kompadre Найти все сообщения от kompadre
  № 7  
kompadre
 
Аватар для kompadre

Регистрация: Aug 2001
Адрес: Barcelona
Сообщений: 1,277
Отправить сообщение для kompadre с помощью ICQ
Убедись что в session.save_path в php.ini абсолютный путь к существующей папке.

session_start надо делать во всех скриптах где планируется пользоваться сессиями.


Последний раз редактировалось kompadre; 31.05.2004 в 11:08.
Старый 31.05.2004, 23:21
MapcuaHuH вне форума Посмотреть профиль Отправить личное сообщение для MapcuaHuH Посетить домашнюю страницу MapcuaHuH Найти все сообщения от MapcuaHuH
  № 8  
MapcuaHuH

Регистрация: Oct 2003
Адрес: Россия, Томск
Сообщений: 29
Отправить сообщение для MapcuaHuH с помощью ICQ
Точно, kompadre, именно путь я и не прописал, как надо. Исправил на абсолютный, убедился, что в той папке создаются файлы. И session_start() выполняю в каждом сценарии.
Но, хоть и массив $_SESSION перестал быть пустым, и там я вижу зарегистрированную переменную, но её значение пусто.
Опять непонятно. Может есть разница, когда определяется переменная, до session_register() или после?
__________________
нет ничего лучше, как наслаждаться человеку делами своими: потому что это–доля его

Старый 31.05.2004, 23:53
MapcuaHuH вне форума Посмотреть профиль Отправить личное сообщение для MapcuaHuH Посетить домашнюю страницу MapcuaHuH Найти все сообщения от MapcuaHuH
  № 9  
MapcuaHuH

Регистрация: Oct 2003
Адрес: Россия, Томск
Сообщений: 29
Отправить сообщение для MapcuaHuH с помощью ICQ
Сам себе же и отвечаю, но всё равно есть чем поделиться.

В результате множества экспериментов остановился на таком единственном рабочем у меня решении:
(программа роется в базе, а потом пишет в неё)
Код:
// script1:
//
$arr = mysql_fetch_array($result, MYSQL_ASSOC);
$id = $arr["id"];
...
session_start();
session_register("id");
$_SESSION['id'] = $id;
Код:
// script2:
//
session_start();
$id = $_SESSION['id'];
Вот так я извлекаю мой "$id". Выглядит по уродски. Неужели так и должно быть? Во всех документациях по сессиям всё просто.
__________________
нет ничего лучше, как наслаждаться человеку делами своими: потому что это–доля его


Последний раз редактировалось MapcuaHuH; 31.05.2004 в 23:58.
Старый 01.06.2004, 01:39
Nirva вне форума Посмотреть профиль Отправить личное сообщение для Nirva Посетить домашнюю страницу Nirva Найти все сообщения от Nirva
  № 10  
Nirva
"Вождь"
 
Аватар для Nirva

Регистрация: Jun 2002
Адрес: New Zealand
Сообщений: 4,600
Отправить сообщение для Nirva с помощью ICQ
$arr = mysql_fetch_array($result, MYSQL_ASSOC);
$id = $arr["id"];

думаем про list(), если не думал. может захочешь.

session_register("id");
$_SESSION['id'] = $id;
вспоминаем реджистр глобалз в позиции офф и понимаем, что второй строчки достаточно.
__________________
а мы летим орбитами путями не избитыми...

Создать новую тему   Часовой пояс GMT +4, время: 11:25.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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