【问题标题】:PHP - Which form has been submitted from <i> element?PHP - 从 <i> 元素提交了哪个表单?
【发布时间】:2017-03-10 08:30:26
【问题描述】:

我刚学php,情况如下。

我有 2 个 *.php 文件。第一个称为index.php,它包含逻辑。第二个 php 文件名为 index.view.php,它包含 html 代码。

index.view.php 中,我在同一页面中有一个登录表单和一个注册表单。类似于 facebook.com 登陆页面,您可以在其中登录或注册新帐户。

我创建了2个表单,第一个是登录表单:

<h1>Login</h1>
    <form action = "<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>" method = "POST" class = "form" name = "login">
        <div class="form-group">
            <input type="text" name="userLogin" class = "user" placeholder="Username">  
        </div>

        <div class="form-group">
            <input type="password" name="passwordLogin" class = "password_btn" placeholder="Your password">
            <i class="submit-btn1" onclick = "login.submit()"></i>
        </div>
    </form>

第二个是注册表单:

<h1>Register</h1>
    <form action = "<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>" method = "POST" class = "form" name = "register">
        <div class="form-group">
            <input type="text" name="userRegister" class = "usuario" placeholder="Usuario"> 
        </div>

        <div class="form-group">
            <input type="password" name="passwordRegister1" class = "password_btn" placeholder="Your password">
        </div>

        <div class="form-group">
            <input type="password" name="passwordRegister2" class = "password_btn" placeholder="Repeat password">
            <i class="submit-btn2" onclick = "register.submit()"></i>
        </div>
    </form>

问题是我如何处理这种情况才能知道提交了哪个表单。我考虑过检查 isset($_POST('userRegister')) 以检测用户何时在注册表单中写入数据,以及检查登录表单是否已提交的相同技术。 p>

由于我开始用 php 编写代码,我不知道我展示的解决方案是否正确。或者如果我可以使用更好的解决方案。

【问题讨论】:

  • 这可以正常工作,但我个人会发布到不同的脚本,以使事情分开并更易于维护。
  • 一种常见的解决方案是在两个脚本中使用同名但值不同的提交输入/按钮。
  • 如前所述,您可以这样做。此外,您可以使用隐藏输入来命名每个表单。但是,将它们分开总是更好的主意!
  • 您正在使用register.submit()login.submit(),所以发出 ajax 调用或 submit() 所做的任何事情的问题是什么,发送了关于女巫表单的附加信息。您也可以使用隐藏输入。
  • name 输入而不是表单并检查isset($_POST["login"])

标签: javascript php html forms


【解决方案1】:

您必须像这样检查 index.php 中的条件:

If(isset($_POST['userLogin') AND isset($_POST['passwordLogin']){
// You login code
}Else{
//You register code
}

【讨论】:

    猜你喜欢
    • 2010-10-07
    • 2016-05-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-10
    • 2014-02-25
    • 1970-01-01
    相关资源
    最近更新 更多