$ _POST中的未定义索引
问题描述:
我正在使用邮递员将数据发布到非常小的php脚本。当我试图转储$ _POST时,它有一些数据,但当我试图访问$ _POST中的变量时,它给了我错误。
PHP脚本
<?php
header("Access-Control-Allow-Origin: *");
var_dump($_POST);
$txt = $_POST['result'];
?>
在邮差原始输入
{"result":"sfd"}
输出
array(1) { ["{"result":"sfd"} "]=> string(0) "" }
Notice: Undefined index: result in C:\xampp\htdocs\apis\index.php on line 4
请告诉我这里发生?
答
使用isset功能检查
<?php
header("Access-Control-Allow-Origin: *");
if(isset($_POST['result'])){
$txt = $_POST['result'];
}
?>
答
答案是一个JSON格式,你需要它才能进行解码,以获得该指数。
<?php
header("Access-Control-Allow-Origin: *");
var_dump($_POST);
$result = json_decode($_POST, true)
$txt = $result['result'];
?>
答
你得到在阿雷JSON字符串不能像访问首先你要它
解码像
为阵
$result = json_decode($_POST, true)
$txt = $result['result']; // text
as Object
$result = json_decode($_POST)
$txt = $result->result; // text
建议
如果通过jQuery的ajax
您的决策要求,我认为你正在使用JSON.stringify()
或类似的方法转换为字符串,而不是使用JSON.stringify()
刚刚出任它是。所以在这种情况下你不需要使用json_decode()
。
例如
var data = {"result":"sfd"};
// data = JSON.stringify(data); // don't use this
$.ajax({
url : url,
data : data,
...
});
好像你从邮递员发送错误的数据。 var_dump($ _ POST); - 像键值“”{“result”:“sfd”}“'的关联数组,值为空字符串。 – alek13