6

$_POST次の形式では、 IE9で空の変数が発生します。

<form id='login' action='login.php' method='POST' accept-charset='UTF-8'>
<input type='text' name="username" id='username'  />
<input type='password' name='password' id='password' />
<input type="text" name="store" />
<input type='submit' name='Submit' value='Submit' />
</form>

このフォームは、Firefox と Chrome で完全に機能します。すべての変数が$_POST問題なく変数に表示されます。

ただし、IE9 では、フォームは適切に送信されます$_POSTが、空の配列です。すなわち、login.php で:

print_r($_POST);

空の配列を出力します。IE9 が Firefox や Chrome とは異なる動作をしている原因を突き止めようとしていますが、わかりません。

人々の問題を引き起こしている Apache の下のモジュールについての言及を見つけましたが、私はIIS7Apache ではなく を実行しているので、そうではありません。Ruby フォーラムの誰かが、レジストリで DisableNTLMPreAuth を 1 に設定することについて言及しましたが、それも修正されていません。

どんな助けでも大歓迎です。

4

4 に答える 4

1

accept-charset は Internet Explorer ではサポートされていません。それを削除して、問題が解決するかどうかを確認してください。

于 2012-06-27T10:45:47.483 に答える
0

これはダブル ヒットに関係していると思います。つまり、IE が何らかの形でページを再読み込みしているということです。バグとして誤ってページを再読み込みするクライアント側のもの (jQuery?) がありますか? まったく新しいページに投稿して<?PHP die ('<pre>'.print_r($_REQUEST,true).'</pre>');?>、一番上の行に書いてみて、何が起こるか見てみましょう。

于 2012-06-19T17:25:10.913 に答える
-1

その理由は、セッションを維持していないためです。Firefox と Chrome は非常にスマートで、コードの開発に関係なくセッションを維持するため、ユーザーに良いことをもたらします。しかし、IE6-9 では、IE はセッションを維持できません。開発者はそれを確認する必要があり、セッションが維持されていない場合、ロードされたすべてのページが新しいセッションであるため、投稿はありません。

于 2012-06-19T04:19:37.607 に答える
-1

フォームの「名前」属性を入力してください。

<form id='login'  name='login' action='login.php' method='POST' accept-charset='UTF-8'>
<input type='text' name="username" id='username'  />
<input type='password' name='password' id='password' />
<input type="text" name="store" />
<input type='submit' name='Submit' value='Submit' />
</form>
于 2012-06-19T04:04:02.777 に答える