Форма GET работает, форма POST не

У меня есть простая форма, которая ведет себя так, как ожидалось, когда method="GET" , но когда method="POST" , это не так.

ФОРМА:

 <form action="/login" method="POST"> <input type="text" name="user" maxlength="30" value=""> <input type="password" name="pass" maxlength="30" value=""> <input type="hidden" name="sublogin" value="1"> <input type="submit" value="Login" /> </form> 

Если я повторяю переменные на экране ( var_dump( $_POST ) или var_dump( $_GET ) ), когда method = "POST", я получаю пустой массив. Когда method = "GET", я получаю массив с соответствующими парами имя / значение (пользователь, pass, sublogin …)

Что нужно знать:

  • .htaccess обрабатывает .php имени файла (action), он также перенаправляет все на index.php, если файл физически не существует.
  • другие формы на сайте работают отлично с POST
  • форма отлично работает на моей локальной машине
  • Firebug показывает 302 Временное перемещение при использовании POST

.htaccess добавлен для каждого запроса:

 RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteRule .$ index.php 

Любая помощь приветствуется!

Если «/ login» не существует, а htaccess перенаправляет (не переписывает URL-адрес), все данные POST теряются. Данные GET сохраняются, поскольку они являются частью URL-адреса.

Проблема не была даже близка к моей линии мысли.

Класс, который устанавливает уничтожение массива $ _POST после обработки, был неправильным, но в любом случае уничтожал мой массив $ _POST. Это происходит только на машинах с PHP 5.3 (предупреждение вызывало недопустимое поведение класса), на сервере работало 5.2.

Спасибо, Бридис за помощь. Извините, я вел вас на погоню за гусями!

Разумеется, решение заключалось в том, чтобы написать лучший способ обработки предупреждений в этом классе и не разрешать уничтожение массива $ _POST.