#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 и как вы это делаете сейчас?