我如何知道我在php中发布的值是多少?
在我的列表中有一些输入框的名称,它的顺序是1 2 3我如何知道我在php中发布的值是多少?,php,html,Php,Html,在我的列表中有一些输入框的名称,它的顺序是1 2 3 <input type= "text" name="text1"> <input type= "text" name="text2"> <input type= "text" name="text3"> 这意味着帖子名=文本1文本2文本3 但是,由于数字不是固定的,我不知道实际有多少文本框,在我发布表单后,如何获取所有的名称 谢谢您只需在$\u POST数组本身中进行迭代即可 只需对每个循环执行一次f
<input type= "text" name="text1">
<input type= "text" name="text2">
<input type= "text" name="text3">
这意味着帖子名=文本1文本2文本3
但是,由于数字不是固定的,我不知道实际有多少文本框,在我发布表单后,如何获取所有的名称
谢谢您只需在
$\u POST
数组本身中进行迭代即可
只需对每个循环执行一次
foreach循环
,但是,请记住,最好知道传递的值是什么,通过这样一个全面的操作,您可以打开自己的大门,接受可能的注入和攻击。使用text[]
作为所有输入元素的名称,而不是text1
,text2
等。然后可以将值作为$\u POST['text']
获取,这将是一个数组。此数组将包含与表单包含的文本框相同的值
更新:如果无法更改HTML(这很不幸),可以通过以下操作获取提交变量的名称:
$names = array_filter(array_keys($_POST),
function ($k) { return substr($k, 0, 4) == 'text'; });
我应该给你这个主意
也可以使用数组文本[]:
<input type= "text" name="text[]">
<input type= "text" name="text[]">
<input type= "text" name="text[]">
您可以包含一个隐藏字段,其值为所有此类字段的名称
PUT THIS IN THE HTML FORM
<input type= "text" name="text1" value="1" />
<input type= "text" name="text2" value="2" />
<input type= "text" name="text3" value="3" />
<input type="hidden" name="textContainer" value="text1,text2,text3" />
将其放入HTML表单中
然后,您可以在PHP中获得如下变量:
<?php
$textFields = trim( $_POST[ 'textContainer' ] );
$textFields = explode( ',', $textFields );
$fields = array(); // this array will contain all text fields with names text1, text2 as keys
foreach( $textFields as $key => $value ) {
$fields[ $value ] = $_POST[ $value ];
}
/* $fields is now an array like below:
Array (
'text1' => 1,
'text2' => 2,
'text3' => 3
)*/
?>
让我知道这是否有效。还有其他方法吗?由于某种原因,我无法将名称更改为数组。对不起,我如何调用此函数?@LeoChan:我不知道你的意思。对不起,我的意思是,如果输入名称为Name100、Name1、Name2、Name101、Name103,我可以使用此代码吗?@LeoChan:使用它,看看会发生什么。我不明白你为什么要问。@leo chan-让我知道这是否有效。可以将隐藏字段值设置为要检查的所有字段名。
<?php
$textFields = trim( $_POST[ 'textContainer' ] );
$textFields = explode( ',', $textFields );
$fields = array(); // this array will contain all text fields with names text1, text2 as keys
foreach( $textFields as $key => $value ) {
$fields[ $value ] = $_POST[ $value ];
}
/* $fields is now an array like below:
Array (
'text1' => 1,
'text2' => 2,
'text3' => 3
)*/
?>