如何在服务器端表示相同的命名输入标记

时间:2014-10-01 18:59:03

标签: html web-standards

在查看不同表单的一些源代码时,我遇到了这段代码

<input class="" id="Delivery_HasShippingAddress" name="Delivery.HasShippingAddress" tabindex="11" type="checkbox" value="true" />
<input name="Delivery.HasShippingAddress" type="hidden" value="false" />

属于相同的形式。正如您所看到的,虽然不同的类型和ID,但有两个input标签具有相同的名称。如果表单已提交tamper data,则将它们“同时”列为POSTDATA:

Delivery.HasShippingAddress=true
Delivery.HasShippingAddress=false

我现在想知道如何处理此请求?

服务器是否用第二个值覆盖第一个值,或者收到的第一个值是否占主导地位,或者列出的值都是可能的(虽然会很奇怪)?

1 个答案:

答案 0 :(得分:1)

浏览器会将数据编码为字符串。典型地:

Delivery.HasShippingAddress=true&Delivery.HasShippingAddress=false

服务器上发生的情况取决于您的表单处理库。通常它会解码according to this spec。然后它会将数据呈现给程序员。

有些会呈现一系列值。有些人只会提出其中一个值。有些可能会根据您调用的函数执行。