2

ユーザーがサイトにログインするために使用するフォームがあります。Chrome では動作しますが、何らかの理由で IE 9 では動作しません。フォームは次のとおりです。

<cfform name="loginform" action="login.cfm" method="post">
<div class="span12">
    <div class="span2">
        User Name:
    </div>
    <div class="span2">
        <cfinput type="text" name="username" required="yes">
    </div>
</div>
<div class="span12">
    <div class="span2">
        Password:
    </div>
    <div class="span2">
        <cfinput type="password" name="password" required="yes">
    </div>
</div>
<div class="span12">
    <div class="span2">
        <cfinput name="submit" class="btn btn-primary" value="login" type="submit">
    </div>
</div>
</cfform>

通常は#form.username#として変数にアクセスしていますが、IE で使用している場合は空です。

ここでの単純化された使用:

<cfif isdefined("FORM.submit")>
   username: #form.username#
</cfif>
4

2 に答える 2

1

上記のコードを実行しても問題はありません。フォームスコープでユーザー名フィールドを正しく使用できます。使用している Internet Explorer のバージョンは何ですか?

これをより適切にデバッグするには、次のことをお勧めします。

  • 最初のページのソースを見て、何か変なところがないか確認してください。
  • Fiddler2 ( http://www.fiddler2.com/ ) をインストールし、これを使用して、login.cfm に投稿されている内容を正確に確認します。

その他の注意点: 干渉している可能性のある JavaScript または CF フレームワークを使用していますか?

于 2013-02-19T12:30:00.200 に答える
0

あなたのコードにも明らかな問題はありません。Firefoxでもこれを試しましたか?場合によっては、そこでより良いデバッグ情報を取得できます。おそらく、実際のエラー メッセージが表示されます。IE と Chrome はどちらも、ページ上のエラーを目立たなくするという点で、少し「上手」すぎることがあります。

私の提案は、プレーンなフォーム タグを使用することです。cfform タグを使用しないでください。ここではあまり必要ありません。彼らはあなたをあまり助けていません。これらのフィールドに対して独自の検証を行い、検証しているものを正確に知ることができます。その方法でフィールドをテストすることもできます。その cfinput を入力に変更するだけで、そのフィールドが投稿で使用可能になるかどうかを確認できます。これにより、CFFORM タグの実装に問題があることがすぐにわかります。

入力をトリミングして XMLFormat() でラップし、SQL ルックアップに cfqueryparams を追加して、スクリプトとインジェクション攻撃を最小限に抑えることを忘れないでください。CF の scriptProtect を使用するか、IIS で URL を書き換えることもできます。検証なしで FORM や URL への自由形式の入力を許可することは非常に危険です。

于 2013-02-19T18:54:03.533 に答える