500内部服务器错误-将json_decode中的数据分配给变量时


500 Internal Server Error - when assigning data from json_decode to variables

我正在从AngularJs应用程序向我的php脚本发送一些表单数据。到目前为止,我还无法让Angular发送"常规"POST请求(它会发送JSON数据),所以我想我只需要用php解码它,然后使用结果

我现在很难参考结果。我在向脚本发送数据时得到"NetworkError: 500 Internal Server Error

这是我的php代码:

<?php
$data = file_get_contents("php://input");
$data = json_decode($data);
var_dump($data);
$fromName = $data["fromName"];
$fromEmail = $data["fromEmail"];
$msg = $data["inputMsg"];

var_dump($data)返回以下内容:

object(stdClass)#1 (3) {
  ["fromName"]=>
  string(4) "djea"
  ["fromEmail"]=>
  string(13) "djea@djea.com"
  ["inputMsg"]=>
  string(7) "testMsg"
}

有人能指出我做错了什么吗?感谢

true作为第二个变量传递给json_decode以获得关联数组。

$data = json_decode($data, true);
$fromName = $data["fromName"];
$fromEmail = $data["fromEmail"];
$msg = $data["inputMsg"];

若不将第二个变量作为true传递,则json_decode返回对象。

$data = json_decode($data);
$fromName = $data->fromName;
$fromEmail = $data->fromEmail;
$msg = $data->inputMsg;

因为它是一个对象而不是数组,所以您需要访问以下元素:

$fromName = $data->fromName;
$fromEmail = $data->fromEmail;
$msg = $data->inputMsg;

不要将object视为an array

$fromName = $data->fromName;
$fromEmail = $data->fromEmail;
$msg = $data->inputMsg;