У меня есть простая форма, которая ведет себя так, как ожидалось, когда 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 добавлен для каждого запроса:
RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteRule .$ index.php
Любая помощь приветствуется!
Если «/ login» не существует, а htaccess перенаправляет (не переписывает URL-адрес), все данные POST теряются. Данные GET сохраняются, поскольку они являются частью URL-адреса.
Проблема не была даже близка к моей линии мысли.
Класс, который устанавливает уничтожение массива $ _POST после обработки, был неправильным, но в любом случае уничтожал мой массив $ _POST. Это происходит только на машинах с PHP 5.3 (предупреждение вызывало недопустимое поведение класса), на сервере работало 5.2.
Спасибо, Бридис за помощь. Извините, я вел вас на погоню за гусями!
Разумеется, решение заключалось в том, чтобы написать лучший способ обработки предупреждений в этом классе и не разрешать уничтожение массива $ _POST.