为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用php同时验证两个表单

如何使用php同时验证两个表单

PHP
小唯快跑啊 2023-09-08 10:14:38
我有两个表单包含在一个 PHP 文件中。其中一种表单用于“登录”,另一种表单用于“注册”,我有一些 CSS 和 JS 可以直观地切换表单,但无论如何,这两种表单仍然在一个 php 文件中。这些表格是标准的:<form action="login.php" method="post" name="user-sign-up"> <div class="error"><?php if(!empty($error)){echo $error;} ?></div>          <span>First name</span>          <input type="text" name="fname" class="fname">        <input type="submit" value="Sign Up" class="signupdawg" id="firstname-signup"> </form>然后我在该表格下面得到了另一张表格。这是我的 php,它可以工作,并且仅适用于其中一种形式:if( isset($_POST['fname']) && !empty($_POST['fname'])){    $upName = $_POST['fname'];if(empty($upName)){        $error = 'All fields are required';我只是缩短了代码,因此不会占用太多空间。我还有其他输入,例如密码,但我只是将其删除,因为代码几乎相同,除了我的 php 空检查中有一个“或”,以及我的 html 中的几行。不管怎样,我想知道如何使用 PHP 同时验证两个表单。
查看完整描述

2 回答

?
FFIVE

TA贡献1797条经验 获得超6个赞

您一次只能提交一份表单,因此您需要使用表单上的某些内容来确定提交了哪一份表单。这只是使用您的代码的一个简单示例:


if(isset($_POST['Sign_Up'])) {

    //do sign up stuff

elseif(isset($_POST['Login'])) {

    //do login stuff

}

通知Sign Up转换为Sign_Up. 最好action在每种形式中使用两个单独的文件并拥有两个不同的文件。


另外,isset这里是多余的:


if( isset($_POST['fname']) && !empty($_POST['fname'])){

已经检查它empty是否已设置,所以只需:


if(!empty($_POST['fname'])){


查看完整回答
反对 回复 2023-09-08
?
慕妹3146593

TA贡献1820条经验 获得超9个赞

您需要在每个表单的提交按钮上使用唯一的值,示例如下index.html


<form method="post" ...>

...

    <button name="submit" type="submit" value="login">login</button>

</form>


<form method="post" ...>

   ...

    <button name="submit" type="submit" value="sginup">sginup</button>

</form>

PHP文件



<?php

    if (isset($_POST["submit"])) {

      switch ($_POST["submit"]) {

          case "login":

                login();

              break;

          case "sginup":

               singup();

              break;

          default: 

              break;

      }

    }

?>


查看完整回答
反对 回复 2023-09-08
  • 2 回答
  • 0 关注
  • 111 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信