У меня есть простая форма в моем приложении Canvas/iframe Facebook, и я пытаюсь передать значения как POST. Теперь, прочитав все об этом повсюду в S.O. и последние документы FB, насколько я понимаю, все данные, отправляемые через форму POST, могут быть доступны на принимающей стороне из объекта $_REQUEST.
Я также читал в другой теме на S.O. что для того, чтобы POST-формы работали, вам нужно передать ввод с именем «signed_request» со значением в качестве текущего signed_request (у меня есть подписанный запрос, работающий нормально, в противном случае... все элементы входа и аутентификации работают нормально). Это нигде не упоминается в официальных документах FB.
Итак, моя проблема в том, что все, что возвращается в объекте $_REQUEST, — это подписанный запрос и куча других вещей сеанса. Мои входные данные формы нигде не могут быть найдены.
Единственный способ, которым я могу их прочитать, - это установить метод формы на «ЗАПРОС», который даже не является методом реальной формы. Но затем он принимает все мои входные данные и отправляет их в виде аргументов GET в URL-адресе. Ужасный. Вот пример страницы из моего приложения на основе холста только с формой, которую я использую для отладки (опуская все элементы аутентификации):
<form enctype="application/x-www-form-urlencoded" method="POST" target="_top" id="my_form" action="https://apps.facebook.com/myfakeapp/form_test.php">
<input type="text" name="test1" value="58" />
<input type="text" name="test2" value="123" />
<input type="text" name="test3" value="434" />
<input type="text" name="test4" value="645" />
<input type="text" name="signed_request" value="<? echo $_REQUEST['signed_request']; ?>">
<input value="Submit Answers" type="submit">
</form>
Документы FB сбивают с толку, поскольку некоторые из них относятся к этому режиму бета-миграции, который у них был для старых приложений, обрабатывающих запросы POST для приложений на основе холста.