$ _POST не определен из СООБЩЕНИЯ удаленного сервера

#api #drupal #post

#API #drupal #Публикация

Вопрос:

Я пишу модуль Drupal 7, который прослушивает сообщения HTTP POST для отправки сторонним удаленным приложением. Для тестирования я отправляю сообщения, используя расширение Firefox Poster.

Если я ОТПРАВЛЮ сообщение, следующий код не сможет поместить какое-либо значение в мои локальные переменные (я получаю ‘неопределенный индекс’):

 $transId = urldecode($_POST['c2s_transaction_id']);
  

Однако, если я отправлю сообщение с помощью GET , переменные будут заполнены следующим кодом:

 $transId = urldecode($_REQUEST['c2s_transaction_id']);
  

Это верно как для моей локальной установки WAMP, так и для пакета общего хостинга.

Я никогда раньше не работал с сообщениями HTTP POST и понятия не имею, в чем может быть проблема. Может ли это быть Drupal, веб-сервер или мой код? Кто-нибудь может подсказать, как я мог бы это решить?

Большое спасибо,
Полли

Ответ №1:

Drupal удаляет $ _POST / $_GET в системе, вместо этого просто используйте $_REQUEST.

Комментарии:

1. Теперь это работает с использованием моего исходного кода: $ TransID = urldecode ($ _POST[‘c2s_transaction_id’]); Моим решением было изменить инструмент, с помощью которого я тестирую. По-прежнему не работает публикация с расширением Firefox Poster. Однако это работает, если я использую этот онлайн-инструмент: hurl.it К сожалению, мои знания HTTP ограничены, поэтому я не знаю, почему это так, но, по крайней мере, я более уверен в продвижении к реальной ситуации. @boy: Спасибо за ваш ответ, но похоже, что $ _POST работает в Drupal 7. Спасибо, Полли

2. @Polly, извините за это, я, кажется, вспомнил, что Drupal очистил его. Не могли бы вы предоставить снимок экрана расширения Firefox и как вы это делаете сейчас?