php - 如何修复未定义的变量

时间:2017-03-12 12:06:50

标签: php html mysql

我只是想找到一些关于我的问题的答案,错误说查询是未定义的变量,但我已经把我需要的所有列都放到了我的表中。 here is the html file.

<?php
session_start();
include_once("../CORE/dbconfig.php");

if(isset($_GET['book']))
{
    $start_date   = $_GET["start_date"];
    $end_date   = $_GET["end_date"];
    $vehicle_id = $_GET["vehicle_id"];

 if(isset($_GET['customer_id'])){
 $customer_id = $_GET['customer_id'];

 if(isset($_GET['vehicle_id'])){
 $vehicle_id = $_GET['vehicle_id'];
 $rate = $_GET['rate'];

 $start_date->format('Y-m-d');
 $end_date->format('Y-m-d');

$query = mysqli_query($connect, "INSERT INTO booking (start_date, end_date, rental_amount, vehicle_id, customer_id)
    VALUES ('".$start_date."', '".$end_date."', '".$rate."', '".$vehicle_id."', '".$customer_id."')")
    or die ("ERROR: " .mysqli_error($connect));
}
}
}
if($query){
    echo'<script>
    alert("Record Updated!");
    window.location.href="homebooking.php";
    </script>';
}    
else{
    echo'<script>
    alert("Cannot Be Book!");
    window.location.href="homebooking.php";
    </script>';

}

?>

3 个答案:

答案 0 :(得分:1)

我猜测$_GET['book']未设置,导致$ query未初始化并导致if($query){出错。使用if(isset($query)){

答案 1 :(得分:0)

  if( isset($_GET['customer_id']) && isset($_GET['vehicle_id']) && isset($_GET['rate']) ){
          $customer_id = $_GET['customer_id'];
          $vehicle_id = $_GET['vehicle_id'];
          $rate = $_GET['rate'];
          $start_date->format('Y-m-d');
          $end_date->format('Y-m-d');

       $query = mysqli_query($connect, "INSERT INTO booking (start_date, end_date, rental_amount, vehicle_id, customer_id)
VALUES ('".$start_date."', '".$end_date."', '".$rate."', '".$vehicle_id."', '".$customer_id."')")
or die ("ERROR: " .mysqli_error($connect));

       if($query){
                     echo'
                         <script>
                           alert("Record Updated!");
                           window.location.href="homebooking.php";
                        </script>
                         ';
        }else{
                 echo'
                       <script>
                        alert("Cannot Be Book!");
                        window.location.href="homebooking.php";
                       </script>
                     ';

        }


  } 

尝试这种检查变量的方式。 我没有改变代码中的任何东西我只是改变检查变量的方式我使用这种方式来确保变量我需要已经定义并找到它的值

答案 2 :(得分:0)

这样可以避免错误通知:

include_once("../CORE/dbconfig.php");
$query = false; // this is the default set value, 
// which is then only updated if GET books is set, below:
if(isset($_GET['book']))
{
   ...

所有这些$_GET值,您应该考虑使用表单和POST值,以及使用mysqli_real_escape_string来降低风险。

除此之外,您还应该考虑在GET变量上使用urlencode/urldecode