表单需要在PHP中处理两个提交按钮

时间:2014-01-27 05:38:16

标签: php forms

在我的HTML中,我有一个用户可以注册或登录的表单。问题是注册和登录按钮的格式相同,它们由两个脚本处理:register.php和login.php。

<form action=" "> 

可能只有一个脚本名称。那么如何使表单能够处理两个提交按钮(两个脚本)?

  <form action="register.php" method="post" class="login_form">     

    <div class="login_form_input_container">   
      <label for="email" class="login_form_label">Email</label>
      <input type="email" id="email" name="email" class="login_form_input">
    </div>

    <div class="login_form_input_container">  
      <label for="password" class="login_form_label">Password</label>
      <input type="password" id="password" name="password" class="login_form_input">
    </div>

    <a href="forgot_password/" class="forgot_password_link">Forgot password?</a>

    <input type="submit" id="login_submit" name="login_submit" value="Log In" class="login_form_submit">

    <input type="submit" id="register_submit" name="register_submit" value="Register" class="login_form_submit">

  </form>

2 个答案:

答案 0 :(得分:2)

创建另一个脚本register_or_login.php,让该脚本处理表单提交并使其路由到登录或注册后端脚本:

if (isset($_POST['login_submit'])) {
    require 'login.php';
} elseif (isset($_POST['register_submit'])) {
    require 'register.php';
}

按钮与复选框或文本字段没有太大区别;如果你给它一个名字,它将出现在$_POST

答案 1 :(得分:0)

您可以查看isset哪一个被发送/点击了

if(isset($_POST['login_submit'])){
    //do login
}elseif(isset($_POST['register_submit'])){
    //do register
}

我只是想到了这一点并检查了如果用户只是点击进入而没有点击提交按钮,它会发送第一个提交名称/值作为默认值。因此,在您的情况下,如果用户只是点击进入,则会发送login_submit,这可能是一件好事。