php通知未定义的变量

时间:2016-04-26 07:22:41

标签: php mysql

 <?php
    if(isset($_GET['breed'])){ $breed = $_GET['breed']; }
    if(isset($_GET['age'])){ $age = $_GET['age']; }
    if(isset($_GET['gender'])){ $gender = $_GET['gender']; }
    if(isset($_GET['image'])){ $image = $_GET['image']; }
    if(isset($_GET['name'])){ $name = $_GET['name']; }
    if(isset($_GET['phone'])){ $phone = $_GET['phone']; }
    if(isset($_GET['address'])){ $address = $_GET['address']; }
$sql = "INSERT INTO catdetails (breed, age, gender, image, name, pno, address) 
VALUES ('$breed','$age','$gender','$image','$name','$phone','$address')";
if(mysqli_query($conn, $sql)){
    echo "Records added successfully.";
} else{
    echo "ERROR: Could not able to execute $sql. " . mysqli_error($conn);
}
    ?>

我的网页上面有代码。但是当我运行它时,它说没有定义变量。

注意:未定义的变量:在第130行的C:\ wamp \ www \ SQA \ index.php中繁殖

如何解决此错误?

5 个答案:

答案 0 :(得分:4)

仅在isset()未设置时才分配值。

因此,如果你没有$_GET['breed']$breed没有初始化,那么错误。

使用三元运算符来实现此目的。

变化:

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

$breed = isset($_GET['breed']) ? $_GET['breed'] : '';

将此更改应用于所需的所有变量。

答案 1 :(得分:1)

如果未设置,则需要输入值。所以if语句是if issets。

答案 2 :(得分:0)

我认为您的$ _GET(['品种'])未设置。 它不运行代码:

 $breed = $_GET['breed'];

所以,没有定义$品种。

您可以按如下方式初始化$ breed:

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

答案 3 :(得分:0)

检查以下代码.1st函数用于从sql注入中逃脱..

        function escape($e_string)
        {
            global $conn;           
            $e_string = trim(strip_tags($e_string));   
            $e_string = mysqli_real_escape_string($conn,$e_string);
            return $e_string;   
        }

        $breed = isset($_GET['breed']) ? escape($_GET['breed']) : '';
        $age = isset($_GET['age']) ? escape($_GET['age']) : '';
        $gender = isset($_GET['gender']) ? escape($_GET['gender']) : '';
        $image = isset($_GET['image']) ? escape($_GET['image']) : '';
        $name = isset($_GET['name']) ? escape($_GET['name']) : '';
        $phone = isset($_GET['phone']) ? escape($_GET['phone']) : '';
        $address = isset($_GET['address']) ? escape($_GET['address']) : '';

        $sql = "INSERT INTO catdetails (breed, age, gender, image, name, pno, address) 
        VALUES ('$breed','$age','$gender','$image','$name','$phone','$address')";
        if(mysqli_query($conn, $sql)){
            echo "Records added successfully.";
        } else{
            echo "ERROR: Could not able to execute $sql. " . mysqli_error($conn);
        }

同时检查数据库字段是否唯一..

答案 4 :(得分:-1)

130号线在哪里? 我认为变量不存在。

试试这个:

$breed = (array_key_exists(['breed'], $_GET)) ? addslashes($_GET['breed']) : null;
$age = (array_key_exists(['age'], $_GET)) ? addslashes($_GET['age']) : null;
$gender = (array_key_exists(['gender'], $_GET)) ? addslashes($_GET['gender']) : null;
$image = (array_key_exists(['image'], $_GET)) ? addslashes($_GET['image']) : null;
$name = (array_key_exists(['name'], $_GET)) ? addslashes($_GET['name']) : null;
$phone = (array_key_exists(['phone '], $_GET)) ? addslashes($_GET['phone ']) : null;
$address = (array_key_exists(['address '], $_GET)) ? addslashes($_GET['address ']) : null;
...