Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Проблема с $_POST
Форумы портала PHP.SU » » Вопросы новичков » Проблема с $_POST

Страниц (1): [1]
 

1. BlackHacker - 29 Сентября, 2012 - 10:12:55 - перейти к сообщению
Приветствую всех. Пишу в форум новичков, потому что не знаю, куда еще написать ТАКОЙ вопрос. Сначала html-шаблон перекосило из-за символа BOM. Потом ActionScript неправильно обрабатывал запрос из-за незамеченного символа в строке, которую я передавал. Затем JavaScript упорно тыкал меня в ошибку, что нет слешей перед кавычками, хотя раньше они всегда выводились в php. Со всеми этими кошмарами кодера я совладел, но сейчас появилась новая аномалия - не принимаются переменные в массив $_POST. Схема такая - флеш отправляет пост-запрос php-скрипту. Затем отсылает запрос на другой адрес, а результат отсылает снова тому скрипту. Функция отправки одна и та же, только адрес и данные разные. Вот пример:
первый запрос к скрипту
Спойлер (Отобразить)

потом отправка запроса на другой адрес, и затем снова запрос к скрипту
Спойлер (Отобразить)

передаются те же самые данные, меняется только значение "data". В первом случае оно - 0, во втором - ответ от второго сервера.



выводит

Уже нет ни злости, ни терпения искать причины всех этих явлений. Помогите пожалуйста, или я что-нибудь разобью
2. KingStar - 29 Сентября, 2012 - 10:15:38 - перейти к сообщению
urldecode / urlencode
3. BlackHacker - 29 Сентября, 2012 - 10:19:26 - перейти к сообщению
KingStar пишет:


Во-первых, без urldecode все раньше обрабатывалось норм, раньше для передачи использовал JavaScript, сейчас использую Flash. Во-вторых, первый запрос нормально обрабатывается, а второй - нет. Хотя оба они почти идентичны. Есть еще предположения?
4. Мелкий - 29 Сентября, 2012 - 10:29:51 - перейти к сообщению
var_dump(file_get_contents('php://input'));
Там что-то иное. Приведённая строка запроса в первом посте замечательно разбирается.
Рабочая версия - второй запрос вовсе get'ом идёт.

Вооружайтесь сниффером и смотрите, что этот ваш флеш отсылает. Отсылает он не то, что вы думаете.

BlackHacker пишет:
раньше для передачи использовал JavaScript, сейчас использую Flash

Более чем достаточная аргументация рыть флеш, а не PHP.
5. BlackHacker - 29 Сентября, 2012 - 10:33:33 - перейти к сообщению
Firebug показывает, что оба идут как POST. Заголовки у обоих одинаковые. Единственное различие только в параметре data. В первом запросе он 0, во втором - строка. Если первый запрос разбирается хорошо, где ошибка во втором?
Мелкий пишет:
Более чем достаточная аргументация рыть флеш, а не PHP.

флеш использует одну и ту же функцию для отправки запроса. Там в любом случае POST. Единственный вариант - неправильно сформированный запрос, хотя ошибки я не увидел. Из флеш data кодирую через encodeURIComponent. Вроде все правильно
(Добавление)
Всем спасибо) Проблема решилась. Это полный эпик-фейл. Firebug добавлял в пост-параметры заголовки запроса, и образовалась каша. Поэтому php не мог разобрать их. я сперва внимания не обратил, просто повторял запрос через Firebug, т.к. он генерируется с сайта, и не хотелось формировать его снова, чтобы вывести параметры post. Пора завязывать с кодингом, а то голова уже ничего не соображает)

 

Powered by ExBB FM 1.0 RC1