我们可以以某种方式将type
HTML输入属性值传递给$_POST数组,或者用PHP获取它吗?
我知道我可以创建一个隐藏字段,并基本上将实际输入的类型放入隐藏字段的值中,但这似乎有点像"重复";
我想创建一个Form,其中输入值被提交到$_POST和。我可以检测该输入的类型,而无需将单个输入硬编码/映射到每个类型。
以这种方式,我可以检测字段类型并采取行动,而不需要创建";地图";它将我的自定义输入(按名称或ID(映射到某个类型,我已经用HTML形式声明了它。
在Form Submit中无法检测到输入的类型,这似乎是一个真正的缺点——或者(希望(我错过了什么?
我们可以以某种方式将类型HTML输入属性值传递给$_POST数组,或者用PHP获取它吗?
本身不是。
我知道我可以创建一个隐藏字段,并基本上将实际输入的类型放入隐藏字段的值中
这是一种方法。
在Form Submit 中无法检测输入类型似乎是一个真正的缺点
通常你知道你期望给定字段的数据类型,因为你不是一般性地处理它们,所以这很少是一个有用的功能。
也许(希望(我错过了什么?
否。
这是细分;
在PHP中通过$_GET访问的GET和在PHP中经由$_POST访问的POST都是传输方法,PUT和DELETE等也是传输方法。from it不管你使用什么方法,它只在客户端工作,只知道将其中的每一个东西映射到串行化的查询字符串中,或者至少读取它以进行串行化。
例如
<input type="text" id="firstname" name="fname">
它获取名称属性并转换为这个
?fname=ferret
看,它甚至没有涉及ID属性。当我们点击提交按钮时,表单将只运行每个输入的名称属性,并使用值生成LHS,并将用户输入作为RHS添加到值中。它不会做任何其他事情。
在PHP方面,我们询问$_GET隧道在请求或$_POST隧道中是否有任何查询字符串。如果有任何查询字符串,则每一个都强调单词字符串。将字符串分解为数组并将其提供给您。因此$POST[名称]。看起来像这个
$_POST = [
fname => 'ferret',
someothingelse => 'someothervalue']
所以你想做的是,或者至少要求做的是。。。让浏览器改变其BOM行为——这是我们无法真正理解的;让表单添加一些这样的东西。
?fname=ferret,text
?fname=ferret-text
?fname=ferret/text
默认情况下,表单不会这样做,除非您在提交前运行自定义函数更新每个查询,这就是我们所说的转义,3/100次您会错过
然后在PHP方面,你希望PHP自己弄清楚斜杠后的类型是这样的
$_POST = [
fname => 'ferret/text']
PHP本身不会做到这一点,除非你像Facebook一样让它自定义,然后运行它,或者至少制作某种低级别的库,但这也是事后诸葛亮。
如果你不想知道,XSS和注射就是这样发生的。
所以查询字符串标准是严格的,以使事物保持一个带有军国主义数据和串行化的字符串。
所以,是的,你们打算用隐藏字段来实现你们想要的是一种经过测试的方式。