未定义的索引名称 1 和未定义的索引名称 2

undefined index name1 and Undefined index name2

这是发生错误的两个文件:

html_form.html

<html>
    <body>
        <center>
            <h1>Admission Form</h1>
            <br>
            <form action="php_register.php" name="registration">
            Firstname: <input type="text" name="name1" placeholder="Enter Firstname"/>
            <br>
            Lastname: <input type="text" name="name2" placeholder="Enter Lastname"/><br>
                <input type="submit" value="submit">
            </form>
        </center>
    </body>
</html>

php_register.php

<?php
     $fname=$_POST['name1'];
     $lname=$_POST['name2'];

    $conn=mysqli_connect("localhost","root","","test");

     if (isset($fname) && isset($lname))
      {
         mysqli_query($conn, "insert into test_table(firstname,lastname) 
         values ('$fname','$lname')");
      }
      else
         echo "<br> Errror....Values are not set in variables...!!!";
?>

( !) 注意:未定义索引:第 2 行 C:\wamp2\www\PHP_project\php_register.php 中的 name1 调用堆栈

时间记忆功能位置

1 0.0022 131712 {main}( ) ...\php_register.php:0

( !) 注意:第 3 行 C:\wamp2\www\PHP_project\php_register.php 中的未定义索引:name2 调用堆栈

时间记忆功能位置

1 0.0022 131712 {main}( ) ...\php_register.php:0

错误....未在变量中设置值...!!!

您需要将 method="post" 添加到您的 <form> 标签。

您还可以检查之前是否在 php_register.php 页面上设置了这些值,以确保脚本 运行 成功。

例如

if (empty($_POST['name1']) || empty($POST['name2']) { 
    // some kind of error setting and redirecting back maybe
}

默认情况下,表单方法是 GET 但您试图通过 $_POST 获取值。

您没有定义表单 POST 方法,那么您可以通过 $_GET$_REQUEST 获取值:

$_GET['name1'];
$_GET['name2'];

$_REQUEST['name1'];
$_REQUEST['name2'];

如果你想使用$_POST那么你应该定义形式method="post"

如果你对表单方法一无所知,使用$_REQUEST是更好的方法。通过 $_REQUEST 你可以获得两种类型的值。

示例:

$fname=isset($_POST['name1'])?$_POST['name1']:'';
 $lname=isset($_POST['name2'])?$_POST['name2']:'';

$conn=mysqli_connect("localhost","root","","test");

 if (!empty($fname) && !empty($lname))
  {
     mysqli_query($conn, "insert into test_table(firstname,lastname) 
     values ('$fname','$lname')");
  }
  else
     echo "<br> Errror....Values are not set in variables...!!!";

你没有在表单中声明POST或GET,但是你使用$_POST['name1']来获取值,这就是错误发生的地方。