无法在同一页面中编写HTML和PHP代码

Arn*_*nab 1 html php

我正在尝试为php表单编写一个简单的代码.我在与html相同的页面中编写了php代码.php页面的名称是signup.php但是我收到这样的错误:

注意:未定义的索引:第5行的C:\ xampp\htdocs\mini_project\signup2.php中的nm

注意:未定义的索引:第6行的C:\ xampp\htdocs\mini_project\signup2.php中的电子邮件

如果我将php和html代码分成两个不同的页面,我的代码就没有问题.

为什么我不能在同一页面上编写php和html?我做错了什么?

我正在使用php 7.

  <?php

   include 'connect.php'

$nm = $_POST['nm'];
$email = $_POST['email'];
$password = $_POST['password'];
$cpassword = $_POST['cpassword'];
$type = $_POST['type'];
$remember = $_POST['remember'];
$signup = $_POST['signup'];

if (isset($signup))
{

  $query = "INSERT INTO user_details (nm,email,pass,user_type) VALUES ('$nm','$email','$password','$type')";
 $result = mysqli_query($conn,$query);
 }
?>


    <!DOCTYPE html>
     <html>
      <head>
   <meta name="viewport" content="width=device-width, initial-scale=1.0">

 <link href="css/bootstrap.min.css" rel="stylesheet" media="screen">
   <script src="js/jquery.min.js"></script>
 <script src="js/bootstrap.min.js"></script>

     <body>
     <div class="container">
    <div class="row">
        <div class="col-md-4 col-md-offset-4">
            <div class="login-panel panel panel-default">
                <div class="panel-heading">
                    <h3 class="panel-title">Please Sign In</h3>
                </div>
                <div class="panel-body">
                    <form role="form" method="post" action="signup.php">
                        <fieldset>
                            <div class="form-group">
                                <input class="form-control" placeholder="Please Enter Name" name="nm" id="nm" type="text" autofocus>
                            </div>
                            <div class="form-group">
                                <input class="form-control" placeholder="Please Enter E-mail" name="email" id="email" type="email">
                            </div >
                            <div class="form-group">
                                <input class="form-control" placeholder="Please Enter Password" name="password" id="password" type="password" value="">
                            </div>
                            <div class="form-group">
                                <input class="form-control" placeholder="Please Confirm Password" name="cpassword" id="cpassword" type="password" value="">
                            </div>
                            <div class="form-group">
                                <select class="form-control" align="center" name="type">
                                    <option value="0">Please Select User Type</option>
                                    <option value="1">I want to Hire</option>
                                    <option value="Second Year">I want to Work</option>
                                </select>
                            </div>
                            <div class="checkbox">
                                <label>
                                    <input name="remember" id="remember" type="checkbox" value="Remember Me">Remember Me
                                </label>
                            </div>
                            <!-- Change this to a button or input when using this as a form -->
                            <input type="submit" name="signup" id="signup" value="Signup" class="btn btn-lg btn-primary btn-block">

                        </fieldset>
                    </form>
                </div>
            </div>
        </div>
    </div>
</div>

</body>

</html>
Run Code Online (Sandbox Code Playgroud)

Rax*_*ber 5

原因是因为您尚未提交表单,但您已经尝试根据$_POST值定义变量.您需要检查是否先设置了值:

if (isset($_POST['nm'])) $nm = $_POST['nm'];
if (isset($_POST['email'])) $email = $_POST['email'];
Run Code Online (Sandbox Code Playgroud)

或使用三元运算符:

$nm = isset($_POST['nm']) ? $_POST['nm'] : "";
$email = isset($_POST['email']) ? $_POST['email'] : "";
Run Code Online (Sandbox Code Playgroud)

或者在PHP 7中,简单地说:

$nm = $_POST['nm'] ?? "";
$email = $_POST['email'] ?? "";
Run Code Online (Sandbox Code Playgroud)