This question already has answers here:
“Notice: Undefined variable”, “Notice: Undefined index”, and “Notice: Undefined offset” using PHP
                                
                                    (28个答案)
                                
                        
                                3年前关闭。
            
                    
我最近开始从w3schools.com上自己为大学项目学习PHP。当使用PHP和MySQL Forms时,一开始我成功地将输入保存到数据库中,但是突然间我凝视着收到以下错误-我已经在互联网上搜索了解决方案,但一无所知。


  (!)注意:未定义的索引:第64行的C:\ wamp \ www \ alpha_airlines \ admin.php中的flight_id
  
  (!)注意:未定义的索引:第65行的C:\ wamp \ www \ alpha_airlines \ admin.php中的flight_time
  
  每个输入都相同。


这是我的代码:



//HTML FORM

<table align="center">
        <tr><td colspan="2" align="center"><h2>Add a Flight</h2></td></tr>
        <form name="add-flight" method="post">
        <tr>
        	<td>Flight ID: </td><td><input type="text" class="textbox" name="flight_id" maxlength="7"></td>
         </tr>
         <tr>
         	<td>Flight Time: </td><td><input type="time" class="textbox" name="flight_time"> </td>
         </tr>
          <tr>
         	<td>Flight Date: </td><td><input type="date" class="textbox" name="flight_date"> </td>
         </tr>
          <tr>
         	<td>Flight From: </td><td><input type="number" class="textbox" name="flight_from" maxlength="2"> </td>
         </tr>
         <tr>
         	<td>Flight To: </td><td><input type="number" class="textbox" name="flight_to" maxlength="2"> </td>
         </tr>
         <tr>
         	<td>Airplane ID: </td><td><input type="text" class="textbox" name="plane_id" maxlength="5"> </td>
         </tr>
         <tr>
         	<td colspan="2" align="right"><input type="submit" value="Add Flight" class="button" name="submit_flight"> </td>
         </tr>
        </form>
        </table>
//PHP CODE

<?php

$flightid = $_POST['flight_id'];
$flighttime = $_POST['flight_time'];
$flightdate = $_POST['flight_date'];
$flightfrom = $_POST['flight_from'];
$flightto = $_POST['flight_to'];
$planeid = $_POST['plane_id'];

$sql = "INSERT INTO flight (Flight_ID, Flight_Time, Flight_date, Flight_From, Flight_To, Airplane_ID)
VALUES ('$flightid', '$flighttime', '$flightdate' , '$flightfrom' , '$flightto' , '$planeid')";

if (mysqli_query($conn, $sql)) {
    echo "New flight created successfully";
} else {
    echo "Error: " . $sql . "<br>" . mysqli_error($conn);
}

mysqli_close($conn);
?>

最佳答案

您必须检查$_POST是否为空。

第一次加载的页面$_POST为空,并且单击Add Flight$_POST设置为flight_idflight_time,....的形式提交表单时。

像这样

if(!empty( $_POST['flight_id'])){
    $flightid = $_POST['flight_id'];
    $flighttime = $_POST['flight_time'];
    $flightdate = $_POST['flight_date'];
    $flightfrom = $_POST['flight_from'];
    $flightto = $_POST['flight_to'];
    $planeid = $_POST['plane_id'];

    $sql = "INSERT INTO flight (Flight_ID, Flight_Time, Flight_date, Flight_From, Flight_To, Airplane_ID)
    VALUES ('$flightid', '$flighttime', '$flightdate' , '$flightfrom' , '$flightto' , '$planeid')";

    if (mysqli_query($conn, $sql)) {
        echo "New flight created successfully";
    } else {
        echo "Error: " . $sql . "<br>" . mysqli_error($conn);
    }

    mysqli_close($conn);
}

10-04 21:34
查看更多