2017-09-23 41 views
1

我正在使用郵遞員將數據發佈到非常小的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 

請告訴我這裏發生?

+0

好像你從郵遞員發送錯誤的數據。 var_dump($ _ POST); - 像鍵值「」{「result」:「sfd」}「'的關聯數組,值爲空字符串。 – alek13

回答

-1

使用isset功能檢查

<?php 
    header("Access-Control-Allow-Origin: *"); 
    if(isset($_POST['result'])){ 
     $txt = $_POST['result']; 
    } 
?> 
0

答案是一個JSON格式,你需要它才能進行解碼,以獲得該指數。

<?php 
    header("Access-Control-Allow-Origin: *"); 
    var_dump($_POST); 
    $result = json_decode($_POST, true) 
    $txt = $result['result']; 
?> 
1

你得到在阿雷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, 
    ... 
});