我有这段代码:
$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后打印的。
答案 0 :(得分:2)
显然$ _POST ['user_profile']带有附加引号的键。
您可以使用
访问它$var_name = "'postcode'";
或修复生成这些奇怪的额外单引号的表单('
)。
答案 1 :(得分:1)
您的密钥["'postcode'"]
中有单引号:
echo '<br />{'.$_POST[$array]["'$var_name'"].'}<br /><br />';