Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/275.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用PHP查找输入类型_Php_Html_Post_Input - Fatal编程技术网

用PHP查找输入类型

用PHP查找输入类型,php,html,post,input,Php,Html,Post,Input,我请求您的帮助,因为我想用PHP自动化表单处理中的某些内容 我的目标是了解$\u POST变量的HTML类型。 例如,如果它是一个,在我的PHP处理中,我想将内容转换为(int)$\u POST['tata'],并进行一些验证 最终目标是能够对我网站上的所有字段和表单使用一次验证,将变量转换为我正在等待的良好格式,然后再将数据发送到数据库 在PHP中有什么方法可以做到这一点吗? 我知道我可以使用jQuery获取类型,但我希望避免使用这种方法 感谢您的回答发送到服务器的所有值都将被解析为字符串,无

我请求您的帮助,因为我想用PHP自动化表单处理中的某些内容

我的目标是了解
$\u POST
变量的HTML类型。 例如,如果它是一个
,在我的PHP处理中,我想将内容转换为
(int)$\u POST['tata']
,并进行一些验证

最终目标是能够对我网站上的所有字段和表单使用一次验证,将变量转换为我正在等待的良好格式,然后再将数据发送到数据库

在PHP中有什么方法可以做到这一点吗? 我知道我可以使用jQuery获取类型,但我希望避免使用这种方法


感谢您的回答

发送到服务器的所有值都将被解析为字符串,无论值是多少。PHP不知道值“1337”是否来自带有
type=“number”
type=“text”
-字段的输入。这些类型仅适用于客户端上的UI

您可以为每个普通输入字段添加具有输入类型的隐藏字段

例如:

<input type="number" name="num[value]" value="1337" />
<input type="hidden" name="num[type]" value="number" />

这不是一种在服务器上自动验证的安全方法。由于数据来自客户机,因此没有一个数据是可信的。如果有人想发送无效数据,他们可以在发布前更改表单中的类型。

gettype
可能会让您感兴趣启动如果
type=“number”
只允许整数,您也可以使用
is\u numeric($\u POST['tata'])
检查值是数字还是非数字发送到服务器的所有值都将被解析为字符串,无论值是多少。PHP不知道值
“1337”
是否来自
type=“number”
type=“text”
-字段。你能做的是为每个普通输入字段添加带有输入类型的隐藏字段GetType对我没有帮助是\u numeric对我也没有帮助,因为我想用foreach在我的所有帖子字段上自动进行所有验证@Magnueriksson,你说得对,这是一种完成我的工作的方法谢谢;)
// Access a value directly
$type  = $_POST['num']['type'];
$value = $_POST['num']['value'];

// Or iterate through the items and do something
foreach ($_POST as $key => $param) {
    $type  = $param['type'];
    $value = $param['value'];

    // Do your thing...
}