【问题标题】:Php: Reading $_POST-array with filter_input returns empty arrayPHP:使用 filter_input 读取 $_POST-array 返回空数组
【发布时间】:2013-12-16 14:04:15
【问题描述】:

我尝试将表单数据作为数组(“newData”)提交到结构中的我的 php 应用程序

$_POST['newData'] = array(
    1 => array( p1 => 'a', p2 => 'ae', /*etc.*/ ),
    2 => array( p1 =>  /*etc.*/ )
)

它告诉我 print_r() 命令。

因为我通常通过filter_input()调用表单数据,所以我在我的程序中写入:

$newData = filter_input(INPUT_POST, 'newData',
    FILTER_DEFAULT, FILTER_REQUIRE_ARRAY);

但这不包含任何值。 我是否以 crong 方式使用了 filter 命令,或者我不知道 php.ini 中是否有一些开关?我过滤输入数组的其他程序以相同的方式在另一台服务器上运行,这就是为什么我认为这可能是一个问题。

【问题讨论】:

    标签: php arrays filter-input


    【解决方案1】:

    filter_input 看不到您添加到$_POST 超全局的数据的原因是filter_input 似乎检查的是原始数据,而不是$_POST 中的已解析数据。 $_GET 也是如此

    print( filter_input(INPUT_GET, 'foo') ); // Prints "bar"
    
    $_GET['foo'] = 'foo'; // Sets the $_GET superglobal, but does not change the raw request data
    
    print( filter_input(INPUT_GET, 'foo') ); // Still returns bar
    

    我知道你可能已经解决了这个问题,但我花了很长时间才弄清楚,我想帮助其他人摆脱困境。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-25
      • 2014-10-24
      • 1970-01-01
      • 2012-04-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多