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

好的,我现在已经查看了您的网站。这其实很简单。

我猜你想要做的是建立一个个性化的网站来登录,这样你就可以拥有自己的外观和感觉。还有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 回答
0

我不太确定我理解你的问题,但我猜你正在写一个新页面并想发布到另一个页面。如果你这样做呢?

<form id="login_form" action="http://webmail.mysite.com/roundcube/" method="post">
于 2013-08-22T21:32:13.090 回答