0

サイトのインデックス ページで次のフォームを使用して、フォーラムにログインしようとしています。

<form method = "post" action = "/forum/ucp.php?mode=login">
   <div id = "field_container">
      <div class = "field"><input name = "username" type = "text" placeholder = "Username" /></div>
      <div class = "field"><input name = "password" type = "password" placeholder = "Password" /></div>
   </div>
   <div class = "submit"><input type = "submit" value = "Login" /></div>
</form>

ただし、このフォームを送信すると、ユーザーはフォーラムのログイン ページに移動するだけです。エラーは発生せず、ユーザーはログインしません。これを機能させるための欠落しているリンクは何ですか?

編集: フォーラム自体のフォームは次のとおりです。

<form action="./ucp.php?mode=login" method="post" id="login">
<div class="panel">
    <div class="inner"><span class="corners-top"><span></span></span>

    <div class="content">
        <h2>Login</h2>

        <fieldset class="fields1">

        <dl>
            <dt><label for="username">Username:</label></dt>
            <dd><input type="text" tabindex="1" name="username" id="username" size="25" value="" class="inputbox autowidth"></dd>
        </dl>
        <dl>
            <dt><label for="password">Password:</label></dt>
            <dd><input type="password" tabindex="2" id="password" name="password" size="25" class="inputbox autowidth"></dd>
            <dd><a href="./ucp.php?mode=sendpassword">I forgot my password</a></dd>
        </dl>

        <dl>
            <dd><label for="autologin"><input type="checkbox" name="autologin" id="autologin" tabindex="4"> Log me on automatically each visit</label></dd>
            <dd><label for="viewonline"><input type="checkbox" name="viewonline" id="viewonline" tabindex="5"> Hide my online status this session</label></dd>
        </dl>


        <input type="hidden" name="redirect" value="./ucp.php?mode=login">

        <dl>
            <dt>&nbsp;</dt>
            <dd><input type="hidden" name="sid" value="7703a705e2d9971b1eae77b1f3ff61d6">
<input type="hidden" name="redirect" value="index.php">
<input type="submit" name="login" tabindex="6" value="Login" class="button1"></dd>
        </dl>
        </fieldset>
    </div>
    <span class="corners-bottom"><span></span></span></div>
</div>



    <div class="panel">
        <div class="inner"><span class="corners-top"><span></span></span>

        <div class="content">
            <h3>Register</h3>
            <p>In order to login you must be registered. Registering takes only a few moments but gives you increased capabilities. The board administrator may also grant additional permissions to registered users. Before you register please ensure you are familiar with our terms of use and related policies. Please ensure you read any forum rules as you navigate around the board.</p>
            <p><strong><a href="./ucp.php?mode=terms">Terms of use</a> | <a href="./ucp.php?mode=privacy">Privacy policy</a></strong></p>
            <hr class="dashed">
            <p><a href="./ucp.php?mode=register" class="button2">Register</a></p>
        </div>

        <span class="corners-bottom"><span></span></span></div>
    </div>


</form>

編集:SIDに加えて、送信ボタンの名前が「ログイン」であることも確認する必要があります。

4

1 に答える 1

0

あなたが直面している問題は、元のフォームに 2 つの追加の非表示フィールドが含まれていることだと思います。

<input type="hidden" name="sid" value="7703a705e2d9971b1eae77b1f3ff61d6">
<input type="hidden" name="redirect" value="index.php">

リダイレクト フィールドが問題になることはありません。

sid フィールドについては、私自身が 2 つの機能を想定しています。XSS を防止するためのハッシュである場合もあれば、ログインが割り当てられる sid である場合もあります。しかし、私は、選択された名前のために2番目の方がより合理的だと思います:)

したがって、フォームを機能させる前に行う必要があるのは、 curlを使用してログイン フォーミュラを取得し、sid を抽出して、非表示フィールドとして独自のフォームに追加することです。

それがあなたを助けるかどうか私に知らせてください。

于 2013-08-03T08:25:43.753 に答える