-3

私が作成しているログインフォームで作業しているときに何かに気づき、他の誰かが以前にこの問題/問題を発見したことがあるかどうか疑問に思いました。フォームを作成してaction属性の値を入力すると、index.cfmページを除くすべてのページで正常に機能します。以下は、私の問題を理解するためのサンプルコードです。

<form action="index.cfm" method="post">
    <input type="text" name="username"></input>
    <input type="password" name="password"></input>
    <input type="submit" value="Login"></input>
</form>

<cfif IsDefined("form.username")>
    <p>Welcome!</p>
<cfelse>
    <p>You have not been logged in.</p>
</cfif>

上記の例は機能しませんが、以下の例は機能します。

<form method="post">
    <input type="text" name="username"></input>
    <input type="password" name="password"></input>
    <input type="submit" value="Login"></input>
</form>

<cfif IsDefined("form.username")>
    <p>Welcome!</p>
<cfelse>
    <p>You have not been logged in.</p>
</cfif>

この問題は、インデックスページでのみ発生します。他のすべてのページでは、ファイル名と必要なURL変数を入力しても、まったく問題なく機能します。誰かがこれが起こっている理由や私が間違っているかもしれない場所についてのヒントや理由を提供できますか?

編集:自分の状況をより明確に把握するためのコードを含めました。最初の例では、ユーザー名フィールドに任意のテキストを入力してフォームを送信すると、「ログインしていません」という出力になります。一方、2番目の例では、「ようこそ!」という代替値を受け取ります。フォームを送信すると。これで私の問題が解決することを願っています。

4

2 に答える 2

2

以下のURLを使用したときにURLの書き換えが削除されていたことが判明しましindex.cfmた(これはデフォルトのドキュメントであるため)。

  • <form action="/index.cfm" method="post">
  • <form action="index.cfm" method="post">

したがって、アクションとしてディレクトリ名を使用する必要がありました。私の場合、このコードは私の問題を解決しました:

    <form action="/community/" method="post"> 
于 2013-03-18T14:40:57.320 に答える
1

明らかな問題の 1 つは、入力に名前を付けていないことです。名前なしで送信されるものはありませんが、フォームは送信されますが、データが含まれていないだけです。

<form action="index.cfm" method="post">
    <input type="text" name="afield"></input>
    <input type="submit"></input>
</form>
于 2013-03-18T13:45:45.300 に答える