Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用多个表单的未定义索引_Php - Fatal编程技术网

Php 使用多个表单的未定义索引

Php 使用多个表单的未定义索引,php,Php,我的问题是: 我在同一页上有两张表格。 第一种形式很好用。 但每当我点击第二个表单上的提交按钮时,就会收到两条通知。 第一个是“未定义的索引:email”,在我的代码中是指“$email=$\u POST[“email”];”。 第二个是“undefined index:password”,在我的代码中是指“$password=$\u POST[“password”];”。 我不希望我的第二个表单受到我为第一个表单创建的所有“if语句”的影响。我将很快为第二个表单创建更多的“if语句”。 例如,

我的问题是: 我在同一页上有两张表格。 第一种形式很好用。 但每当我点击第二个表单上的提交按钮时,就会收到两条通知。 第一个是“未定义的索引:email”,在我的代码中是指“$email=$\u POST[“email”];”。 第二个是“undefined index:password”,在我的代码中是指“$password=$\u POST[“password”];”。 我不希望我的第二个表单受到我为第一个表单创建的所有“if语句”的影响。我将很快为第二个表单创建更多的“if语句”。 例如,当我点击第二个表单上的提交按钮时,它会回显“您需要输入电子邮件和密码”,这是一个我只想应用于第一个表单的错误

所以我的问题是:我如何让表单只受一组特定的“if语句”的影响?就像在css编码中应用ID一样,但是我会对表单或“if语句”做什么,以使“if语句”只影响特定的表单

下面是代码:

<form action="login.php" method="post">
        <ul id="login">
            //login information
            <li id="loginn">
                <input type="submit" value="Log in">
            </li>
        </ul>
</form>

 <form action="" method="post"> 
        <ul id="register">
                     //register info list items
                             <li>
                <input type="submit" value="Sign up">
            </li>
        </ul>
</form>

<?php

if (empty($_POST) === false) {
$email = $_POST["email"];
$password = $_POST["password"];

if (empty($email) === true || empty($password) === true) {
    $errors[] = "You need to enter an email and password.";
} else if (user_exists($email) === false) {
    $errors[] = "The email you entered is not in our records. Have you registered?";
} else if (user_active($email) === false) {
    $errors[] = "Go to your email, open the email we sent you,and activate your account.";
} else {$login = login($email, $password);
    if ($login === false) {
        $errors[] = "That email/password combination is incorrect.";
    } else {
        $_SESSION['users_id'] = $login;
        header('Location: homepage.php');
        exit();
    }
}

} 

if (empty($errors) === false) {

?>

<?php
echo output_errors($errors);
}
?>

    //登录信息
    //注册信息列表项
您可以添加带有表单名称的
表单字段:

  <input type="hidden" name="formname" value="form1">

(请注意,此代码中没有任何错误检查!)

太棒了,我将尝试此方法,并让您知道它是否适合我!但是我应该把隐藏的表单字段放在哪里呢?事实上,我一周前才开始学习如何编写代码,所以我不知道错误检查是什么意思。就像你所说的“if语句”所链接的函数一样,
可以在表单中的任何地方。你不会看到的。错误检查主要是指从不信任
$\u POST
中的内容:好吧,我完全按照你说的做了,现在它在“($\u POST['formname']”中显示formname”是一个未定义的索引。@KacyRaye更新您的问题,以便我们看到可能的错误。我实际上已经找到了解决方法。我在“提交”按钮上添加了一个名称,然后创建了一个包含所有其他if语句的if语句(类似于最初建议的语句)。
  if ($_POST['formname'] == "form1") {
      // ifs for first form
  }