[英]Undefined index in $_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
這里發生了什么事?
您正在使用Arrey獲取JSON字符串,因此無法像那樣首先訪問它,因此必須對其進行解碼
喜歡
作為數組
$result = json_decode($_POST, true)
$txt = $result['result']; // text
作為對象
$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,
...
});
答案是json格式,您需要對其進行解碼才能訪問此索引。
<?php
header("Access-Control-Allow-Origin: *");
var_dump($_POST);
$result = json_decode($_POST, true)
$txt = $result['result'];
?>
使用isset函數檢查
<?php
header("Access-Control-Allow-Origin: *");
if(isset($_POST['result'])){
$txt = $_POST['result'];
}
?>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.