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

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

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

Регистрация: Jun 2008
Сообщений: 3
Question Метод POST почему-то не работает

Вопрос: почему не работает следующий код.

Во флешке в событии на нажатие кнопки (или по таймеру)
Код:
var request:URLRequest = new URLRequest("http://mysite.ru/testpost.php");
request.method         = URLRequestMethod.POST;

var variables:URLVariables = new URLVariables();
variables.query = "2";

var loader:URLLoader   = new URLLoader();
loader.dataFormat      = URLLoaderDataFormat.VARIABLES;
loader.data            = variables;

loader.addEventListener(Event.COMPLETE, completeChecking);

loader.load(request);
Файл testpost.php
Код:
<?
echo "answer=".sizeof($_REQUEST)." ".sizeof($_POST)." ".sizeof($_GET);
?>
Размер массива $_POST всегда 0, хотя в данном случае должен быть 1.

GET, кстати, тоже не работает.

Подозреваю, что упустил какую-то мелочь. Поиск результатов не дал, или во всяком случае, я ничего не нашел. Везде код примерно такой же. Пробовал задавать request.contentType разные (text/html, text/xml и другие) - результат тот же.
__________________
Бесплатный самоучитель английского English Puzzle

Старый 26.06.2008, 22:32
Alex Lexcuk вне форума Посмотреть профиль Отправить личное сообщение для Alex Lexcuk Посетить домашнюю страницу Alex Lexcuk Найти все сообщения от Alex Lexcuk
  № 2  
Ответить с цитированием
Alex Lexcuk

блогер
Регистрация: Mar 2008
Адрес: Донецк_city
Сообщений: 1,094
Записей в блоге: 5
А, интересно, а как вы бы определили что он работет?

Старый 27.06.2008, 07:14
SilentZZ вне форума Посмотреть профиль Отправить личное сообщение для SilentZZ Посетить домашнюю страницу SilentZZ Найти все сообщения от SilentZZ
  № 3  
Ответить с цитированием
SilentZZ
 
Аватар для SilentZZ

Регистрация: Jun 2008
Сообщений: 3
Alex Lexcuk,
скрипт testpost.php (если это конечно можно назвать скриптом) возвращает количество элементов в массивах: $_REQUEST, $_POST и $_GET. При вызове из флешки ответ всегда выглядит так:
Код:
answer=0 0 0
Для теста сделал файл testpost.htm с такой формой
Код:
<form method = "post" action = testpost.php>
<input type="text" name="aaaaa" value="2"><br />
<input type="text" name="bbbbb" value="3333"><br />
<input type="text" name="ccccc" value="В чем дело?"><br />
<input type="submit" value="Тест">
</form>
При нажатии кнопки "Тест" выдается
Код:
answer=3 3 0
Так и определил.

Была мысль посмотреть передаваемые HTML заголовки, но я пока не знаю как это сделать.
__________________
Бесплатный самоучитель английского English Puzzle

Старый 27.06.2008, 12:48
Alex Lexcuk вне форума Посмотреть профиль Отправить личное сообщение для Alex Lexcuk Посетить домашнюю страницу Alex Lexcuk Найти все сообщения от Alex Lexcuk
  № 4  
Ответить с цитированием
Alex Lexcuk

блогер
Регистрация: Mar 2008
Адрес: Донецк_city
Сообщений: 1,094
Записей в блоге: 5
Ну так целесообразно все таки передавать переменные РНР скрипту.
Код:
var url:String = "http://mysite.ru/testpost.php";
var request:URLRequest = new URLRequest(url);
request.method         = URLRequestMethod.POST;//лучше не указывать
var variables:URLVariables = new URLVariables();
            variables.exampleSessionId = new Date().getTime();
            variables.user_name = "В чем дело";//писать переменную aaaaa не 
            variables.user_answer = "Неичего не понимаю";//писать переменную bbbbb не рекомендую
            variables.user_message = "Прикол";
			
request.data = variables;
var loader:URLLoader = new URLLoader();
configureListeners(loader);
  try {
       loader.load(request);
      } 
  catch (error:Error) 
      {
      trace("Unable to load requested document.");
      }
       

function configureListeners(dispatcher:IEventDispatcher):void {
            dispatcher.addEventListener(Event.COMPLETE, completeHandler);
		 }
		 
		 
function completeHandler(event:Event):void {
            var loader:URLLoader = URLLoader(event.target);
            trace("completeHandler: " + loader.data);
            var vars:URLVariables = new URLVariables(loader.data);
            trace("The  is " + vars.answer);
	trace(vars.answer);
        }
В вашем предыдущем коде передавалась одна переменная
variables.query = "2";
вот он и выдает наверно от этого
>>Размер массива $_POST всегда 0, хотя в данном случае должен быть 1.

Вот протестил свой скрипт
completeHandler: answer=4 4 0
The is 4 4 0
4 4 0

Выдало не одни нули.


Последний раз редактировалось Alex Lexcuk; 27.06.2008 в 13:02.
Старый 30.06.2008, 10:16
SilentZZ вне форума Посмотреть профиль Отправить личное сообщение для SilentZZ Посетить домашнюю страницу SilentZZ Найти все сообщения от SilentZZ
  № 5  
Ответить с цитированием
SilentZZ
 
Аватар для SilentZZ

Регистрация: Jun 2008
Сообщений: 3
Действительно Ваш код работает
Спасибо, буду разбираться дальше....
__________________
Бесплатный самоучитель английского English Puzzle

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

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

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


 


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


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