1

フォームに対して Internet Explorer のオートコンプリートがオンになっている場合、HTML フォームの各フィールドのエントリはキャッシュされ、ユーザーがフォームにコンテンツを 2 回目に入力し始めるときにプロンプ​​トとして表示されます。

私の Web サイトでは、そのサイトに存在するどのフォームに対してもオートコンプリート機能が表示されません。しかし、他の Web サイトでは、そのコンテンツを問題なく保持および配信しています。

私のサイトは PHP をスクリプト言語として使用しており、すべてのコンテンツは SSL 経由で配信されます。

4

4 に答える 4

9

この問題は、start_session()コマンドが発行され、サイトがSSLを実行しているときにPHPが送信するCache-Headersに関連していると判断しました。

私はマイクロソフトのIEセキュリティチームの人を捕まえることができました、そして彼らはこれがIEがどのように機能することになっているのかを確認しました。これがメールからの直接の引用です。

「これはオートコンプリートシステムの機能と見なされます。このように動作させるために重要なコードが作成されました。」

session_start();の場合 phpが送信するデフォルトのhttpヘッダーが発行されます。これはキャッシュなしのヘッダーです。これは、マイクロソフトの代表者からの別の引用です。

安全なページに「キャッシュしないでください」と表示されている場合は、データが機密であるため、オートコンプリートデータ自体が機密である可能性があります。確かに、これは単純なヒューリスティックです。個人的には少しばかげていると思いますが、ずっとそこにあります。デフォルトのヒューリスティックをオーバーライドするために「autocomplete=on」をサポートすることはおそらく良い提案です。

オートコンプリート機能を再度有効にするには、start_session()コマンドの前にphpで次のコマンドを発行する必要がありました。

session_cache_limiter ('private, must-revalidate');

ヘッダーのキャッシュコントロールを操作してオートコンプリートを機能させる方法は他にもあると思います。

IEでテストできるように私が作成した3つのサンプルフォームへのリンクを次に示します。

于 2008-12-12T20:46:12.953 に答える
3

dgavey-フォームはどのように送信されていますか?Microsoftは、この微妙な問題について過度に明確ではありませんが、

YOU HAVE TO SUBMIT YOUR FORMS WITH A SUBMIT BUTTON

これが機能するために!

もちろん、独自のフォームをデザインするのが好きなすべてのサイトのようでない限り、ありがとうございます。したがって、IEを動作させるには、このハックが必要になります。

http://webbugtrack.blogspot.com/2007/08/bug-137-ie-autocomplete-hardly-ever.html

これは、MSがこの本当に奇妙な振る舞いを説明しているKB記事をここに示しています。

于 2008-12-12T21:21:36.283 に答える
1

autocomplete="off"フォーム要素に属性としてありますか?

于 2008-12-12T20:38:09.820 に答える
1

SSLを使用する場合、IEではオートコンプリートは使用されません(タグには記載されていますが、質問には記載されていません)。

于 2008-12-12T20:43:34.130 に答える