2009-07-29 2 views
0

Я запускаю Firefox 2.0.0.14.HTML Form работает с GET, но не с POST

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

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

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

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

GET /postComment.php HTTP/1.1 
... 

Это даже не попытка POST.

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

EDIT: Вот форма:

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

Какой плагин вы используете? Вы уверены, что он работает? – ceejayoz

+0

Просьба опубликовать соответствующий фрагмент HTML-кода вашей страницы, если вы хотите получить помощь в проверке его правильности. Спасибо - – markh

+0

«Прямые HTTP-заголовки» на главной странице плагинов веб-разработки Firefox. Я уверен, что он работает, потому что принимающая страница не собирает никаких переменных POST. – 2009-07-29 19:54:07

ответ

0

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

+0

На странице нет JS. – 2009-07-29 19:58:34

+0

Не могли бы вы вставить тег

и вы используете, пожалуйста? Вы случайно дублируете определение ? –

+0

Конечно, проверить этот вопрос для редактирования – 2009-07-29 20:11:14

0

Я предполагаю, что ваш плагин не захватывает переменные 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

+1

я должен видеть: POST /postComment.php HTTP/1.1 ... Content-Length: ххх [ПОСЛЕ DATA] – 2009-07-29 20:01:28

+0

Примечание: I см. соответствующий запрос POST из других форм с помощью плагина – 2009-07-29 20:04:06

+0

Я проверяю значение POST, подобное этому - isset = false, и это побудило меня проверить HTTP-запрос с помощью плагина – 2009-07-29 20:06:19

0

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

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

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

0

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

<form method="post" ... > 

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

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

Затем вызовите ее в коде, как это:

debugArray($_POST); 

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

Я готов держать пари, что один из следующих условий:

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

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

+1

Я использую «print_r ($ _ POST)» и ничего не получаю («Array()») Я отправил код формы выше. – 2009-07-29 20:38:30

+0

Комментарий Firefox не ed, но это версия, в комплекте с очень популярным нетбуком, и поэтому было бы лучше ее поддерживать. – 2009-07-29 20:41:59

+0

Если вы видите полностью пустой массив $ _POST, это означает, что ваш Firefox неправильно публикует информацию - вы используете некоторая форма программного обеспечения для обеспечения конфиденциальности? Какую версию PHP вы используете? Какой браузер? Какой сервер (apache, windows)? – EvilChookie

Смежные вопросы