如何在同一页面上放置两个表单?

Ale*_*gro 11 html php forms

我想将注册表和登录表放在同一页面上.
它们都以:

if (!empty($_POST)) ... 
Run Code Online (Sandbox Code Playgroud)

所以,我需要这样的东西:

if (!empty($_POST_01))...  // regForm
  and 
if (!empty($_POST_02))...  //loginForm
Run Code Online (Sandbox Code Playgroud)

如果第二个表单繁忙,如何阻止执行第一个表单,反之亦然(用户点击两者)
我的想法是在启动过程中创建一个简单的变量,例如$x = 1在进程结束时$x = 0,所以:

if ((!empty($_POST_01)) And $x = 0)...
Run Code Online (Sandbox Code Playgroud)

可能有更好的方法.

cri*_* _b 36

你可以用两种不同的动作制作两种形式

<form action="login.php" method="post">
    <input type="text" name="user">
    <input type="password" name="password">
    <input type="submit" value="Login">
</form>

<br />

<form action="register.php" method="post">
    <input type="text" name="user">
    <input type="password" name="password">
    <input type="submit" value="Register">
</form>
Run Code Online (Sandbox Code Playgroud)

或者这样做

<form action="doStuff.php" method="post">
    <input type="text" name="user">
    <input type="password" name="password">
    <input type="hidden" name="action" value="login">
    <input type="submit" value="Login">
</form>

<br />

<form action="doStuff.php" method="post">
    <input type="text" name="user">
    <input type="password" name="password">
    <input type="hidden" name="action" value="register">
    <input type="submit" value="Register">
</form>
Run Code Online (Sandbox Code Playgroud)

然后你的PHP文件将作为一个开关($ _ POST ['action'])...此外,他们不能同时点击两个链接或同时发出请求,每个提交是一个单独的请求.

然后,您的PHP将继续使用切换逻辑,或者使用不同的php文件执行登录过程,然后执行注册过程


Nea*_*eal 8

那么你可以让每个表单转到另一个页面.(这是更好的)

或者对于某个输入和基础帖子具有不同的值:

switch($_POST['submit']) {
    case 'login': 
    //...
    break;
    case 'register':
    //...
    break;
}
Run Code Online (Sandbox Code Playgroud)


小智 6

您可以使用这个最简单的方法。

<form action="validator.php" method="post" id="form1">
    <input type="text" name="user">
    <input type="password" name="password">
    <input type="submit" value="submit" form="form1">
</form>

<br />

<form action="validator.php" method="post" id="form2">
    <input type="text" name="user">
    <input type="password" name="password">
    <input type="submit" value="submit" form="form2">
</form>
Run Code Online (Sandbox Code Playgroud)


mar*_*ina 5

为两种形式的提交按钮指定不同的名称,并使用PHP检查哪个按钮已提交数据。

形式一按钮-btn1形式二按钮-btn2

PHP代码:

if($_POST['btn1']){
    //Login
}elseif($_POST['btn2']){
    //Register
}
Run Code Online (Sandbox Code Playgroud)