Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP JSON解析,仅显示三个参数之一_Php_Html_Json_Forms_Post - Fatal编程技术网

PHP JSON解析,仅显示三个参数之一

PHP JSON解析,仅显示三个参数之一,php,html,json,forms,post,Php,Html,Json,Forms,Post,我有一个向php页面发送HTTP POST的html页面,并嵌入了一个JSON对象作为参数。然而,当我试图检索参数时,我只能检索“pass”,而不能检索其他任何内容。我是否遗漏了在php中解析JSON的内容 html邮寄表格: <form method="POST" action="......../username_exist.php" > <input type="hidden" name="param" value='{"username":"user123","pass

我有一个向php页面发送HTTP POST的html页面,并嵌入了一个JSON对象作为参数。然而,当我试图检索参数时,我只能检索“pass”,而不能检索其他任何内容。我是否遗漏了在php中解析JSON的内容

html邮寄表格:

<form method="POST" action="......../username_exist.php" >
<input type="hidden" name="param" value='{"username":"user123","pass":"147852369qwerfdsazxcv","funny":"funny"}' />
<input type="submit" value="Click Me to submit" />
</form>
给出以下结果:

147852369qwerfdsazxcv


这在我的本地网站上很有用:

$param = json_decode($_POST['param']);
$username = $param->username;
$pass = $param->pass;
$funny = $param->funny;
echo $pass;
echo $username;
echo $funny;

不同之处在于,我使用了
->
,因为它是一个对象,而不是数组。

这在我的本地计算机上非常有效:

$param = json_decode($_POST['param']);
$username = $param->username;
$pass = $param->pass;
$funny = $param->funny;
echo $pass;
echo $username;
echo $funny;
不同之处在于,我使用了
->
,因为它是一个对象,而不是数组。

根据我读到的内容,调用
json_decode
而不调用
assoc
参数将返回一个对象,因此需要访问其属性,如
$param->pass
$param->username

干杯

根据我读到的内容,调用
json_decode
而不调用
assoc
param将返回一个对象,因此您需要访问其属性,如
$param->pass
$param->username


干杯

Philip是对的,您需要将true作为第二个参数添加到json_decode中,以获取返回的数组

$param = json_decode( $_POST['param'], true );

…将json作为关联数组返回,并使您的其余代码按预期工作。

Philip是对的,您需要将true作为第二个参数添加到json_decode以获取数组

$param = json_decode( $_POST['param'], true );

..将json作为关联数组返回,并使您的其余代码按预期工作。

能否显示POST['param']中的echo内容?特别是它得到了URLCoded吗?@xandar
echo“1”。$\u POST['param'].“2”给出
1{“用户名”:“用户123\”,“通过”:“147852369qwerfdsazxcv\”,“有趣的”:“有趣的”}2
。我想我现在明白了问题所在,但我怎样才能通过考试呢?PHP正在自动转义“如何停止此操作?但是,我仍然不明白为什么“pass”会起作用,当“username”和“funcy”无法获取返回的关联数组时,json_decode中的第二个参数必须为true。我在答案中添加了这一行。祝你好运。你能显示出POST['param'中的echo内容吗请问?它是不是被URL编码的?@xandar
echo“1”。$\u POST['param'].“2”;
给出
1{“用户名”:“user123\”,“pass\”:“147852369qwerfdsazxcv\”,“搞笑的”:“搞笑的”}.2
。我想我现在看到了这个问题,但我如何通过这个问题?PHP是自动转义的,我如何阻止这个?但是,我仍然不明白为什么要“通过”工作,当“username”和“funcy”无法获取返回的关联数组时,json_decode中的第二个参数必须为true。我把这句话写进了答案。祝你好运,谢谢。它现在起作用了,但现在似乎疯狂的是“通行证”不知怎的成功了。。。。。。别客气,谢谢。它现在起作用了,但现在似乎疯狂的是“通行证”不知怎的成功了。。。。。。嗯~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~