PHP - 使用$ _POST保存值和名称

时间:2011-12-15 07:38:35

标签: php html post

我目前正在使用以下格式来保存HTML表单$item_name=$_POST['item_name'];

中的值

这样可以保存值,但是如何将name属性保存在变量中?

提前致谢!

5 个答案:

答案 0 :(得分:3)

假设您要将$ _POST变量的每个元素存储为键值对,那么您可以尝试:

$var = array();
foreach($_POST as $key => $val) {
  $var[$key] = $val;
}

答案 1 :(得分:0)

  

我节省了很多价值,并希望避免输入每一个。

请先说清楚。
全局变量意图手动输入。
如果你想要一些自动处理 - 只需将它们保存在阵列形式中。

看起来rdt.exe的答案就是你要找的。

答案 2 :(得分:-1)

您注意到必须使用该名称访问$_POST - 数组并获取值。如果你想将名字存储在一个变量中,也可以这样做:

$item_name_name = 'item_name';
$item_name_value = $_POST[$item_name_name];

可以也使用某种循环来动态创建具有相应名称的变量,如下所示:

foreach( $_POST as $name => $value ){
    $$name = $value;
}
在我看来,这两种方式都是某种不必要的和无用的,但是你没有说明你究竟要做什么 - 所以也许这会有所帮助。

答案 3 :(得分:-1)

另一种方法:

$keysarray = array_keys ( $_POST);  
print_r( $keysarray);

这将为您提供数组中的所有键

答案 4 :(得分:-1)

您正在寻找的功能称为extract

这将为数组中的所有$key=>$val对创建变量。

$_EXAMPLE = array('bird' => 'chicken', 'dog' => 'greyhound');
export($_EXAMPLE);
echo $bird;  # prints "chicken"
echo $dog;   # prints "greyhound"

注意 - 这是一个巨大的安全风险。其他一些答案中描述的解决方案也是如此。

执行此类操作的问题是用户可以篡改POST数据,并设置除应该设置的参数之外的参数。如果他们在您的应用程序中设置实际上是变量名称的变量,那么这些变量可以被覆盖

$is_admin = false;
$_EXAMPLE = array('bird' => 'chicken', 'dog' => 'greyhound', 'is_admin' => 'true');
export($_EXAMPLE);

if ($is_admin) {  # this will now evaluate to true.
    # do sensitive stuff...
}