Я пытаюсь создать простую систему входа, используя <form method="post">
. Все работает отлично на MAMP на моем ноутбуке, но когда я загружаю скрипт на сервер (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: Решено! Смотри ниже.
В конце концов, я понял, что я мог бы опубликовать то, что сработало здесь, если кто-то другой будет иметь такую же проблему в будущем.
Оказывается, один из этих HTTP-модулей мешал POST:
RadCompression
RadUploadModule
Когда эти модули отключены, POST работал нормально.
(NB это было в совершенно новом приложении, где я знал, что не существует никакого существующего кода, который мог бы зависеть от одного из этих модулей … отключение их может иметь непреднамеренные последствия, о которых я не знаю, YMMV.)
Одна из возможностей заключается в том, что POST не является допустимым глаголом на сервере:
http://www.iis.net/configreference/system.webserver/security/requestfiltering/verbs
У меня была такая же проблема, когда $ _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