单个php页面中的多个Post表单导致问题

单个php页面中的多个Post表单导致问题,php,html,forms,post,Php,Html,Forms,Post,我在一个php页面上有多个表单。一个index.php页面上的登录表单、注册表单和发布状态表单。 当我点击一个表单的提交按钮时,所有表单似乎都是提交的。 当我没有登录并尝试使用post status表单发布状态时,我会收到预期的“未登录”错误,但当我看到其他表单时,我会收到如下php代码错误 注意:未定义索引:uname 注意:未定义索引:pass 我该如何处理这件事? if(isset($\u POST['submit'])似乎是导致问题的原因。我对php很陌生。如果我错了,请帮我改正 我的代

我在一个php页面上有多个表单。一个index.php页面上的登录表单、注册表单和发布状态表单。 当我点击一个表单的提交按钮时,所有表单似乎都是提交的。 当我没有登录并尝试使用post status表单发布状态时,我会收到预期的“未登录”错误,但当我看到其他表单时,我会收到如下php代码错误

注意:未定义索引:uname 注意:未定义索引:pass

我该如何处理这件事?
if(isset($\u POST['submit'])
似乎是导致问题的原因。我对php很陌生。如果我错了,请帮我改正

我的代码:

<div id="myModal1" class="modal1">
            <div class="modal-content">
                <span class="close" onclick="login_modal_hide()">&times;</span>
                <section id="signin">
                    <h1>Sign In</h1>
                    <form method="POST">
                        <input type="text" name="username" placeholder="Username"><p></p>
                        <input type="password" name="password" placeholder="Password"><p></p>
                        <input type="submit" value="SIGN IN"><p></p>
                        <a href="#">Forgot Password?</a>
                        <?php
                            session_start();
                            include("config.php");
                            if($_SERVER["REQUEST_METHOD"] == "POST") {
                                $uname = mysqli_real_escape_string($dbc,$_POST['username']);
                                $pass = mysqli_real_escape_string($dbc,$_POST['password']);

                                $query = "SELECT uname FROM users WHERE uname = '$uname' and pass = '$pass'";
                                $result = mysqli_query($dbc,$query);
                                $row = mysqli_fetch_array($result,MYSQLI_ASSOC);
                                //$active = $row['active'];

                                $count = mysqli_num_rows($result);
                                if($count == 1) {
                                $_SESSION['uname']="uname";
                                $_SESSION['login_user'] = $uname;

                                header("location: welcome.php");
                                }else {
                                    echo "<p class='error'>Your Login Name or Password is invalid</p>";
                                }
                            }
                        ?>
                    </form>
                </section>
            </div>
        </div>
        <!-- Modal SignUP form -->
        <div id="myModal2" class="modal2">
            <div class="modal-content">
                <span class="close" onclick="signup_modal_hide()">&times;</span>
                <?php
                    $unameErr = $passErr = $emailErr = "";
                    if(isset($_POST['submit'])) {
                        $uname = test_input($_POST['uname']);
                        $email = test_input($_POST['email']);
                        $pass = $_POST['pass'];

                        if (!filter_var($email, FILTER_VALIDATE_EMAIL)) { $emailErr = "Invalid email format"; }
                        else if(!preg_match('/^[A-Za-z][A-Za-z0-9]{2,31}$/',$uname)) { $unameErr = "Invalid username format (Must start with letter; 3-32 characters; Letters and numbers only)"; }
                        else if(!preg_match('/^(?=.*\d)(?=.*[A-Za-z])[0-9A-Za-z!@#$%]{8,12}$/', $pass)) { $passErr = "Invalid Password format (Must contain at least 1 number and 1 letter; Must be 8-12 characters)"; }
                        else {
                            $dbc = mysqli_connect('localhost', 'root', '', 'DATA') or die('Error connecting to MySQL server!');
                            $query = "INSERT INTO users (uname, email, pass, status, xp) VALUES('$uname', '$email', '$pass', '0', '100')";
                            $result = mysqli_query($dbc, $query) or die('Error querying database!');
                            echo 'Thanks for Signing UP! Welcome '.$uname.'!';
                            mysqli_close($dbc);
                        }

                    }
                    function test_input($data) {
                        $data = trim($data);
                        $data = stripslashes($data);
                        $data = htmlspecialchars($data);
                        return $data;
                    }
                ?>
                <h1>Sign UP</h1>
                <section id="signup">
                    <form method="post" action="">
                        <input type="text" id="uname" name="uname" placeholder="Username" required><p class="error"><?php echo $unameErr;?></p>
                        <input type="text" id="email" name="email" placeholder="Email address" required><p class="error"><?php echo $emailErr;?></p>
                        <input type="password" id="pass" name="pass" placeholder="Password" required><p class="error"><?php echo $passErr;?></p>
                        <p><input type="checkbox" id="agreement" name="agreement" required>I agree to the <a href="#">Terms</a> and <a href="#">Privacy</a></p>
                        <input type="submit" value="Sign UP!" name="submit">
                    </form>
                Already have an account? <a href="javascript:void(0);" onclick="signup_modal_hide(); login_modal();">Log In</a>
                </section>
            </div>
        </div><div class='panel'>
            <form method='post' action=''>
                <textarea id='qdesc' name='content' placeholder='Your Answer...' required></textarea>
                <input type='submit' value='Post Answer' name='submit'>
            </form>
        </div><?php
if(isset($_POST['submit'])) {
        if(isset($_SESSION['login_user'])){

            $content = $_POST['content'];

            $dbc = mysqli_connect('localhost', 'root', '', 'DATA') or die('Error connecting to MySQL server!');
            $query = "INSERT INTO answers (whoanswered, content, votes, answeredto) VALUES('$login_session', '$content', '0', '$q')";
            $result = mysqli_query($dbc, $query) or die('Error querying database!');
            echo 'Post complete!';
            //header( "refresh:5; url=./qview.php?q="echo $q;"");
            mysqli_close($dbc);
        }
    }?>

&时代;
登录


尝试这样做,首先命名所有提交按钮,然后检查设置了哪个按钮

比如:



为每个按钮指定不同的名称,以便检查设置了哪个按钮。

显示代码please@YuJiaao这是我的密码。。。
    <input type="submit" name="signup" value="Sign UP!">

<?php
    if($_SERVER["REQUEST_METHOD"] == "POST" && isset($_POST['signup'])) { 
             /* Your code here */
    }
?>