0

フォーム ID または名前を持たない同じドメイン内の別のページにフォームを送信する方法は?

別のページに送信する必要があるフォーム:

<form id="login_form" action="roundcube" method="post">
    <div class="input-req-login">
        <label for="user">Email Address</label>
    </div>
    <div class="input-field-login icon username-container">
        <input name="_user" 
               id="rcmloginuser" 
               autofocus="autofocus" 
               placeholder="Enter your email address." 
               class="std_textbox" 
               type="text"  
               tabindex="1" required>
    </div>
    <div style="margin-top:30px;" class="input-req-login">
        <label for="pass">Parola</label>
    </div>
    <div class="input-field-login icon password-container">
        <input name="_pass" 
               id="rcmloginpwd" 
               placeholder="Enter your email password." 
               class="std_textbox" 
               type="password"
               tabindex="2" required>
    </div>
    <div class="controls">
        <div class="login-btn">
            <button type="submit" 
                    onclick="document.getElementByName("form").submit()"  
                    tabindex="3">Autentificare</button>
         </div>

対象形態:

<form name="form" action="./" method="post">
    <input type="hidden" name="_token" value="543e98f5e6cc25841fc0df79cb939590">
    <input type="hidden" name="_task" value="login">
    <input type="hidden" name="_action" value="login">
    <input type="hidden" name="_timezone" id="rcmlogintz" value="_default_">
    <input type="hidden" name="_url" id="rcmloginurl" value="">
    <table>
        <tbody>
            <tr>
                <td  class="title">
                    <label for="rcmloginuser">Utilizator</label>
                </td>
                <td class="input">
                    <input name="_user" 
                        id="rcmloginuser" 
                        size="40" 
                        autocapitalize="off"
                        autocomplete="off"
                        type="text">
                </td>
            </tr>
            <tr>
                <td class="title">
                    <label for="rcmloginpwd">Parolă</label>
                </td>
                <td class="input">
                    <input name="_pass" 
                           id="rcmloginpwd" 
                           size="40" 
                           autocapitalize="off"
                           autocomplete="off" 
                           type="password">
                </td>
            </tr>
        </tbody>
    </table>
    <p class="formbuttons">
        <input type="submit" 
               class="button mainaction"
               value="Autentificare" />
    </p>
</form>
4

2 に答える 2

1

わかりました、私は今あなたのサイトを見てきました。これは実際には非常に簡単です。

あなたがやろうとしているのは、ログインするためのパーソナライズされた Web サイトをセットアップして、独自のルック アンド フィールを提供できるようにすることだと思います。それと roundcube は、あなたがインストールした標準のメール システムだと思いますか?

問題は、roundcube がユーザー名とパスワードを送信するだけではないことです。HTML コードを見ると、次のこともわかります。

<input type="hidden" name="_token" value="5b6a757df5eee91fa7ee7171466b8b2a">
<input type="hidden" name="_task" value="login">
<input type="hidden" name="_action" value="login">
<input type="hidden" name="_timezone" id="rcmlogintz" value="_default_">
<input type="hidden" name="_url" id="rcmloginurl" value="">

これらはすべて、POST でログと共に自動的に送信される非表示の値です。おそらく、最後の 4 つを追加する必要があります。

しかし、あなたにとって大きな問題があるかもしれません。_token と呼ばれる最初のものは、サーバーが提供する必要があるランダム化された文字列であるという理論があります。私は間違っているかもしれませんが、もし私が正しければ、あなたはあなたが望むことをすることができなくなります. このランダムな文字列を使用する理由は、ユーザーが他のフォームからログインを投稿できないようにするためです (つまり、私が正しい場合)。

ラウンドキューブの管理設定で、このランダム化された文字列をオフにすることは可能でしょうか? そうでない場合は、ラウンド キューブのコードを掘り下げたい場合を除き、簡単に進める方法はないと思います。

編集: _token なしで元のフォームを送信しようとしましたが、機能しません。残念ながら、今回は不運です。

于 2013-08-22T21:53:16.303 に答える