$_POST 给出了不正确的 HTML 输入字段值

$_POST gives incorrect HTML input field value

我对这段代码很生气。谁能解释一下问题出在哪里?

我有这个 HTML 表格:

<form action="item_add.php" method="POST" id="formadd">
    SKU: <input type="text" name="sku" id="form2"><br/>
    Name: <input type="text" name="name" id="form2"><br/>
    Price: <input type="text" name="price" id="form2"><br/>
    Type: <select name="type" id="form2">
        <option value="1">DVD-Disc</option>
        <option value="2">Book</option>
        <option value="3">Furniture</option>
    </select>
</form>

这个简单的代码用于检查是否一切正常,因为我是新手:

if ($_SERVER['REQUEST_METHOD'] == 'POST'){//&&( isset( $_POST['submit1'] )){
    $item = new c_item;
    $item->$sku = mysqli_real_escape_string($link, $_POST['sku']);
    $item->$name = mysqli_real_escape_string($link, $_POST['name']);
    $item->$price = floatval(mysqli_real_escape_string($link, $_POST['price']));
    $item->$type = intval(mysqli_real_escape_string($link, $_POST['type']));

    echo "sku: ".$item->$sku."<br/>";
    echo "name: ".$item->$name."<br/>";
    echo "price: ".$item->$price."<br/>";
    echo "type: ".$item->$type."<br/>";
}

问题是它输出我:

sku:名称

姓名:姓名

价格:2

类型:2

插入 sku 和价格时会有所不同。

因为您没有粘贴完整代码,所以这只是假设

echo "sku: ".$item->$sku."<br/>";
            echo "name: ".$item->$name."<br/>";
            echo "price: ".$item->$price."<br/>";
            echo "type: ".$item->$type."<br/>"; 

在那里你执行变量的动态名称所以$name,可以与$sku相同,$price可以与$type相同

我不知道你的 c_item 但你可能想做的是在此 class 或类似的

中声明
class c_item 
{
    public $name;
    public $price, 
    public $sku;
    public $type;
}

然后在您的代码中,您需要使用 $

动态访问属性
 $item = new c_item;

 $item->sku = mysqli_real_escape_string($link, $_POST['sku']);
 $item->name = mysqli_real_escape_string($link, $_POST['name']);
 $item->price = floatval(mysqli_real_escape_string($link, $_POST['price']));
 $item->type = intval(mysqli_real_escape_string($link, $_POST['type']));

 echo "sku: ".$item->sku."<br/>";
 echo "name: ".$item->name."<br/>";
 echo "price: ".$item->price."<br/>";
 echo "type: ".$item->type."<br/>";

注意 属性 对象名称中缺少 $