$ _POST提供了不正确的HTML输入字段值

时间:2018-06-27 14:57:01

标签: php html forms post submit

我很讨厌这段代码。有人可以解释问题出在哪里吗?

我有这个HTML表单:

raise_exception=True

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

<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>

问题是它输出了我:

sku:名称

名称:名称

价格:2

类型:2

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

1 个答案:

答案 0 :(得分:1)

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

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 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/>";

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