PHP $_POST не работает, но $_GET отлично работает
Я пытаюсь создать простую систему входа, используя <form method="post">
. Все работает отлично на MAMP на моем ноутбуке, но когда я загружаю script на сервер (Windows), он не работает; кажется, что массив $_POST пуст.
Я прокомментировал все, кроме голых костей, и он все еще не работает.
index.php:
<form id="login-form" method="POST" action="_scripts/check_login.php">
Email Address
<input name="login-email" type="text" id="login-email">
Password
<input name="login-password" type="text" id="login-password">
<input type="submit" name="Submit" id="login-button" value="Login">
</form>
_scripts/check_login.php: (Я удалил все, кроме некоторых var_dumps для отладки)
var_dump($_POST);
$loginEmail = trim($_POST['login-email']);
echo '<br>';
$loginPassword = ($_POST['login-password']);
var_dump($loginEmail);
echo '<br>';
var_dump($loginPassword);
Когда я отправляю форму, независимо от того, что я помещаю в текстовые поля, я вижу следующее:
array(0) { }
string(0) ""
NULL
Если я изменил все экземпляры "post", чтобы "получить" в этих двух файлах, все работает нормально. Но я не хочу использовать get. ($ _REQUEST не работает, если я отправлю форму, используя метод = "post" ).
NB это все отлично работает на localhost, но не на сервере (на котором работает Windows.) Таким образом, это будет проблемой с сервером, но я понятия не имею, что. Вы можете увидеть PHPInfo здесь: http://brailleapps.org/phpinf0.php
Любые идеи?
EDIT: Решено! См. Ниже.
Ответы
Ответ 1
В конце концов, я понял, что я мог бы опубликовать то, что сработало здесь, если у кого-то еще будет такая же проблема в будущем.
Оказывается, один из этих HTTP-модулей мешал POST:
RadCompression
RadUploadModule
Когда эти модули отключены, POST работал нормально.
(NB это было в совершенно новом приложении, где я знал, что не существует какого-либо существующего кода, который мог бы зависеть от одного из этих модулей... отключение их может иметь непреднамеренные последствия, о которых я не знаю, YMMV. )
Ответ 2
Одна из возможностей заключается в том, что POST не является допустимым глаголом на сервере:
http://www.iis.net/configreference/system.webserver/security/requestfiltering/verbs
Ответ 3
У меня была такая же проблема, когда $_POST был пустым /NULL, и, проведя 30 минут поиска SO и Google, я наконец нашел решение, которое сработало для меня.
Так как я не знаю, как изменить файл php.ini для MAMP, я отредактировал свой htaccess, чтобы включить это:
php_value post_max_size 60M
php_value upload_max_filesize 60M
и теперь я могу var_dump ($ _ POST) с предоставленным вводом.
Ссылка ссылки: http://helpfulcoder.blogspot.ca/2011/01/empty-post-array-in-mamp.html