19

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

if (!empty($_POST)) ... 

所以,我需要类似的东西:

if (!empty($_POST_01))...  // regForm
  and 
if (!empty($_POST_02))...  //loginForm

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

if ((!empty($_POST_01)) And $x = 0)...

可能,有更好的方法。

4

6 回答 6

49

您可以使用 2 个不同的操作制作两个表单

<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>

或者这样做

<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>

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

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

于 2012-12-28T14:52:56.033 回答
9

好吧,您可以让每个表单转到不同的页面。(这是更可取的)

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

switch($_POST['submit']) {
    case 'login': 
    //...
    break;
    case 'register':
    //...
    break;
}
于 2012-12-28T14:51:07.667 回答
6

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

表单一按钮 - btn1 表单二按钮 -btn2

PHP代码:

if($_POST['btn1']){
    //Login
}elseif($_POST['btn2']){
    //Register
}
于 2015-10-28T12:14:24.973 回答
3

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

<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>

于 2018-10-06T20:26:11.780 回答
1

希望这会帮助你。假设登录表单有:用户名和密码输入。

if(isset($_POST['username']) && trim($_POST['username']) != "" && isset($_POST['password']) && trim($_POST['password']) != ""){
//login
} else {
//register
}
于 2012-12-28T14:52:09.527 回答
1

这是两个带有两个提交按钮的表单:

<form method="post" action="page.php">
  <input type="submit" name="btnPostMe1" value="Confirm"/>
</form>

<form method="post" action="page.php">
  <input type="submit" name="btnPostMe2" value="Confirm"/>
</form>

这是您的 PHP 代码:

if (isset($_POST['btnPostMe1'])) { //your code 1 }
if (isset($_POST['btnPostMe2'])) { //your code 2 }
于 2020-03-11T12:09:11.903 回答