簡體   English   中英

$ _POST中的未定義索引

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM