Hướng dẫn file_get_contents(php //input) - file_get_contents (php // input)

Đây là mã của tôi. Và tôi đang đăng dữ liệu của mình bằng phương pháp bài đăng.

$post_body = file_get_contents('php://input');
if(getenv('REQUEST_METHOD') == 'POST'){
    print_r( array( "3","3d"));
}
print_r($post_body);

Tôi đang sử dụng người đưa thư của Chrome để kiểm tra mã này, nhưng nó không in dữ liệu bài đăng, xem hình ảnh đầu ra.

Tôi đang làm gì sai ???

CHỈNH SỬA

Để chỉ ra cách tôi giải quyết vấn đề của mình, tôi đang thêm hình ảnh này.

Khi được hỏi ngày 4 tháng 5 năm 2016 lúc 6:11May 4, 2016 at 6:11

ArchisharchishArchish

8207 Huy hiệu bạc 30 Huy hiệu Đồng7 silver badges30 bronze badges

Theo tài liệu PHP

php://input không có sẵn với Enctype = "Multipart/Form-Data".

Postman hỗ trợ các loại Content-Type khác nhau bao gồm multipart/form-data dường như là mặc định.

Vì vậy, hãy chắc chắn rằng bạn không sử dụng ____ ____ 6 (trong tab Body).

Đã trả lời ngày 4 tháng 5 năm 2016 lúc 6:23May 4, 2016 at 6:23

Ruslan Osmanovruslan OsmanovRuslan Osmanov

Huy hiệu vàng 19.7K77 gold badges44 silver badges57 bronze badges

4

Tôi gặp khó khăn tương tự khi kiểm tra điểm cuối symfony nhưng với nguyên nhân hoàn toàn khác:

Lớp học của tôi chỉ có chức năng trong đó. Và tôi đã làm một

var_dump(file_get_contents('php://input'));

Trên dòng đầu tiên của chức năng của tôi, đây là hàm đầu tiên trong lớp. Điều này đã trở lại trống ("") ngay cả khi các tham số là chính xác.

Vấn đề của tôi là tôi đã quên sử dụng toàn bộ tuyến đường này, nhưng vì Postman đã cố gắng chạy chức năng này dù sao cũng khiến tôi quá nhiều thời gian để chú ý. Hy vọng nó giúp!

Đã trả lời ngày 18 tháng 9 năm 2019 lúc 9:59Sep 18, 2019 at 9:59

MBOTETMBOTETMbotet

922 Huy hiệu bạc17 Huy hiệu đồng2 silver badges17 bronze badges

@Harryi3t Tôi không nghĩ như vậy bởi vì tôi đã gặp vấn đề này với Postman từ lâu. Tôi chưa bao giờ có thể nhận được một trong những yêu cầu này để làm việc ở Postman. Bạn có thể đúng, nhưng tại sao rất nhiều người gặp vấn đề với điều này? Có những hạn chế hoặc quy tắc để sử dụng các tính năng đăng JSON thô mà chúng ta không biết?

Tôi đã tạo một trang thử nghiệm bằng cách sử dụng AJAX để đăng yêu cầu tôi muốn thực hiện lên máy chủ của mình và điều đó hoạt động hoàn toàn tốt, nhưng thời điểm tôi thử nó trong Postman thì không. Như thể Postman xóa dữ liệu bài trước khi thực hiện yêu cầu đến máy chủ bởi vì nếu tôi nhập dữ liệu yêu cầu ở phía máy chủ, tôi không nhận được gì nếu tôi thực hiện yêu cầu thông qua Postman!
It's as if Postman clears the post data before making the request to the server because if I dump the request data on the server side I get nothing back if I make the request through Postman!

Không quan tâm Đây là tập lệnh tôi đang sử dụng để gửi yêu cầu AJAX:

const $requestForm = document.getElementById('requestForm');
const $requestJson = document.getElementById('requestJson');

$requestForm.addEventListener('submit', function(e) {
    e.preventDefault();

    const xhr = new XMLHttpRequest();

    xhr.open('POST', $requestForm.action, true);
    xhr.setRequestHeader('Content-Type', 'application/json')
    xhr.onload = function() {
        console.dir(xhr);
    };
    xhr.send(JSON.stringify($requestJson.value));
});

Và máy chủ chỉ đơn giản là chết với thân yêu cầu:

die(file_get_contents('php://input'));

Hoạt động sử dụng tập lệnh Ajax, không sử dụng Postman.