Форма HTML работает с GET, но не с POST - PullRequest
0 голосов
/ 29 июля 2009

Я использую Firefox 2.0.0.14.

У меня есть форма на веб-странице, которая отлично работает с методом GET.

Я использую плагин для просмотра HTTP-запроса моего браузера при отправке формы, и вот он:

GET /postComment.php?review=2&comment=Testing HTTP/1.1
...

Однако, если я сделаю простой переход от метода = GET к методу = POST в форме:

GET /postComment.php HTTP/1.1
...

Он даже не пытается POST.

Любые возможные причины для этого, при любых обстоятельствах?

РЕДАКТИРОВАТЬ: Вот форма:

<form method=POST action="postComment.php"><input type=hidden name=review value="2"><input type=submit value="Postit">
</form>

Ответы [ 4 ]

0 голосов
/ 30 июля 2009

Во-первых, ваш тег <form> необходимо настроить:

<form method="post" ... >

Во-вторых, у меня есть функция под названием debugArray, которую я использую, чтобы выплевывать некорректно работающие массивы. Это очень удобно:

<code>function debugArray($array){
    echo("<pre>");
    print_r($array);
    echo("
"); }

Затем назовите это в своем коде так:

debugArray($_POST);

Просматривая все содержимое массива $ _POST, вы можете точно увидеть, что отправляется, что нет, и как оно отправляется.

Готов поспорить, что одно из следующего верно:

  1. У вас есть орфографическая ошибка в имени поля, помните, что имена чувствительны к регистру.
  2. Ваше поле формы находится за пределами <form> тегов.
  3. У вас есть значение, которое не может быть правильно экранировано или иным образом удалено из $ _POST по любой причине.

Редактировать: И я также был бы склонен обновить вашу копию Firefox.

0 голосов
/ 29 июля 2009

Я предполагаю, что ваш плагин не захватывает переменные POST. Поскольку вывод вашего плагина:

GET /postComment.php HTTP/1.1

Как вы ловите свои POST-варажи? $ _POST ['key'] или $ _REQUEST ['key'] должны содержать ваше значение, если действие и метод формы установлены правильно.

POST не будет найден в строке запроса.

EDIT: если вы пытаетесь зафиксировать значение сообщения, вы можете проверить его примерно так:

if (isset($_REQUEST['submit'])) {
   echo $_REQUEST['review'];
}

или

if (isset($_POST['submit'])) {
   echo $_POST['review'];
}

Acorn

0 голосов
/ 30 июля 2009

Я бы начал с того, чтобы убедиться, что ваш HTML является верным XHTML. Оберните значения атрибута в кавычки и завершите входные элементы символом />. Используйте действительный DOCTYPE .

Кроме того, попробуйте изменить значение кнопки «Отправить» (по умолчанию).

Попробуйте в разных браузерах, включая последнюю версию Firefox .

0 голосов
/ 29 июля 2009

Установлен ли параметр действия тега формы? Может ли Javascript перехватить этот пост? Некоторый HTML из вашей формы будет полезен, или пример ссылки:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...