Я пытаюсь создать простую систему входа, используя <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
Если изменить все экземпляры «пост», чтобы «получить» в а bove два файла, все работает отлично. Но я не хочу использовать get. ($ _REQUEST не работает, если я отправлю форму, используя метод = "post").
NB это все работает нормально на локальном хосте, но не на сервере (на котором работает Windows.) Таким образом, это будет проблемой с сервером, но я понятия не имею, что. Вы можете увидеть PHPInfo здесь: http://brailleapps.org/phpinf0.php
Любые идеи?
EDIT: Решено! Смотри ниже.
Что '$ _SERVER' содержат запросы POST? Вы пробовали enctype? Клиенту FastCGI разрешено получать [POST-глагол для IIS] (http: // stackoverflow.ком/вопросы/313188/пустого пост-массив-в-PHP-5-2-6-МИС-CGI)? – mario
у нас была такая же проблема, но пост ajax не работал, как только мы переехали на сервер. После долгой борьбы мы обнаружили, что модуль mod rewrite сервера отключен. После включения все в порядке. Убедитесь, что. Но, насколько мне известно, нет никакого отношения к POST и mod rewrite. Просто попробуйте. – Samy
Возможно, это проблема с типом контента. Если тип содержимого не распознается или он отсутствует, то '$ _POST' пуст. Попробуйте установить 'if (empty ($ _ SERVER ['CONTENT_TYPE'])) {$ _SERVER ['CONTENT_TYPE'] =" application/x-www-form-urlencoded ";}'. И что делает 'var_dump (file_get_contents ('php: // input')),' say? – Quasdunk