13

を使用して簡単なログイン システムを構築しようとしています<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

上記の 2 つのファイルで「post」のすべてのインスタンスを「get」に変更すると、すべて正常に動作します。しかし、私はgetを使いたくありません。(method="post" を使用してフォームを送信すると、$_REQUEST も機能しません)。

NBこれはすべてlocalhostでは正常に機能しますが、サーバー(Windowsを実行している)では機能しません。したがって、サーバーに問題があるように見えますが、何が原因かわかりません。ここで PHPInfo を確認できます: http://brailleapps.org/phpinf0.php

何か案は?

編集:解決しました!下記参照。

4

4 に答える 4

4

最終的には修正しました。将来誰かが同じ問題を抱えた場合に備えて、ここで機能したものを投稿することもできます。

これらの HTTP モジュールの 1 つが POST に干渉していたことが判明しました。

RadCompression
RadUploadModule

これらのモジュールをオフにすると、POST は正常に機能しました。

(注:これは、これらのモジュールのいずれかに依存している可能性のある既存のコードがないことを知っていたまったく新しいアプリでした...それらをオフにすると、私が気付いていない意図しない結果が生じる可能性があります.YMMV.)

于 2013-04-17T08:07:01.240 に答える
2

1 つの可能性は、POST がサーバーで許可されている動詞ではないことです。

http://www.iis.net/configreference/system.webserver/security/requestfiltering/verbs

于 2013-03-13T13:06:28.957 に答える
0

私は $_POST が空/NULLであるという同じ問題を抱えていました.SOとGoogleを検索するのに30分を費やした後、私は最終的に自分に合った解決策を見つけました.

MAMPのphp.iniファイルを変更する方法がわからないので、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

于 2013-09-18T18:04:52.973 に答える