$ _POST数组问题

时间:2018-04-13 12:07:38

标签: php arrays post

我有这段代码:

$array = 'user_profile';
$var_name = 'postcode';
if ( isset($_POST['user_profile']) ) {
    echo '<br />Var name ('.$var_name.')<br />';
    print '<pre>';print 'Keys<br>';print_r(array_keys($_POST[$array]));print '</pre>';print '<br />';
    print '<pre>';print 'POST user_profile<br />';print_r($_POST[$array]);print '</pre>';print '<br />';
    print '<pre>';print 'POST dump<br />';var_dump($_POST[$array]);print '</pre>';print '<br />';
    echo '<br />{'.$_POST[$array][$var_name].'}<br /><br />';
}
die();

我明白了:

Var name (postcode)
Keys
Array
(
    [0] => 'address_1'
    [1] => 'address_2'
    [2] => 'address_3'
    [3] => 'address_4'
    [4] => 'address_5'
    [5] => 'postcode'
    [6] => 'phone'
)

POST user_profile
Array
(
    ['address_1'] => Templeton House
    ['address_2'] => 62 Templeton Street, Suite 22
    ['address_3'] => 
    ['address_4'] => Glasgow 
    ['address_5'] => 
    ['postcode'] => G40 1DA
    ['phone'] => 07222222
)

POST dump
array(7) {
  ["'address_1'"]=>
  string(15) "Templeton House"
  ["'address_2'"]=>
  string(29) "62 Templeton Street, Suite 22"
  ["'address_3'"]=>
  string(0) ""
  ["'address_4'"]=>
  string(8) "Glasgow "
  ["'address_5'"]=>
  string(0) ""
  ["'postcode'"]=>
  string(7) "G40 1DA"
  ["'phone'"]=>
  string(8) "07222222"
}

Notice: Undefined index: postcode in C:\xampp\htdocs\xxxxxx.com\src\controller\app\userController.php on line 153

{}

第153行是:echo '<br />{'.$_POST[$array][$var_name].'}<br /><br />';

我整个上午都试图找出我的错误。

有人能帮助我吗?感谢。

[编辑]

我做了一些修改,试图澄清所问的内容。显然代码更长,但你看到的位是函数的开头。没有什么可以告诉你,这有助于理解什么是hapening。输出正是我在浏览器中得到的,即使是最后一个括号,顺便说一下我不明白为什么会有,第一个是OK但是第二个是在NOTICE后打印的。

2 个答案:

答案 0 :(得分:2)

显然$ _POST ['user_profile']带有附加引号的键。

您可以使用

访问它
$var_name = "'postcode'";

或修复生成这些奇怪的额外单引号的表单(')。

答案 1 :(得分:1)

您的密钥["'postcode'"]中有单引号:

echo '<br />{'.$_POST[$array]["'$var_name'"].'}<br /><br />';