【问题标题】:PHP: remove a $_POST key and value completlyPHP:完全删除 $_POST 键和值
【发布时间】:2013-07-01 00:08:56
【问题描述】:

我正在开发一项安全功能,我需要为以下任务找到解决方案:

我在一个 HTML 表单中提交了几个元素,其中一个元素是一个名为 test[] 通过 POST 的数组。

这个提交的数组总是只包含一个值,例如“apple”。

现在我需要检查数组是否为空或值为“-1”,如果是:

完全删除 $_POST['test'] 数组,就像它永远不会被提交一样。

这可能吗?我尝试使用 unset() 但它只是从数组中删除值,而不是 $_POST['test'] 数组。

【问题讨论】:

  • 为什么会出现这个问题?
  • 你试过unset($_POST['test'])吗?
  • 这应该可以完美运行。 unset($arr['test']);
  • 我正在对所有提交的元素执行(过滤)搜索,但我总是得到零结果,因为我有一个数据库查询 WHERE test='$_POST['test']' 并且如果POST 为空我需要列不为空的结果。我知道一个抽象而复杂的解决方案,但正在寻找一个简单的解决方案。
  • 我希望是伪sql或者你的应用程序容易被sql注入...

标签: php html arrays post submit


【解决方案1】:

对我来说很好用。你一定是做错了。

<?php
$arr = array('test' => array('apple'));
var_dump($arr);
unset($arr['test']);
var_dump($arr);

...

array(1) {
  ["test"]=>
  array(1) {
    [0]=>
    string(5) "apple"
  }
}
array(0) {
}

【讨论】:

  • 谢谢,我在 if 条件中使用了empty(),现在使用in_array() 检查它是否为空并且unset() 有效。
【解决方案2】:

一个简单的解决方案,是删除表单上名称为name="test"的输入例如:

<form method="post">
 <input type="text" name="test" value="apple"> <br>
 <input type="text" name="Another"><br>
 <input type="submit" name="submit" value="Submit Form">
</form>

表格如下:

数组(“测试”=>“苹果”,“另一个”=>“”)

只需从表单中删除输入并为常量值添加一个变量占位符。

【讨论】:

    猜你喜欢
    • 2023-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-15
    • 2018-09-26
    • 1970-01-01
    相关资源
    最近更新 更多