php - Difference between file_get_contents and $ _POST
I'm sending data through POST from one application to another, using the file_get_contents function, I can't receive the data but using the variable $ _POST I can get it. Which would be the most suitable to receive the data? I would like to send a token for authentication together, how could I do that?
$cont = json_decode(file_get_contents('php://input'), true);
echo gettype($cont);
NULL
And when I try the pre-defined variable, I can receive the data.
$cont = $_POST;
echo gettype($cont);
array
Answer
Solution:
file_get_contents('php://input') gets the raw POST data as a string.
$_POST gets the POST data after PHP has automatically decoded it from application/x-www-form-urlencoded or multipart/form-data encodings.
If the data isn't encoded using one of those methods (e.g. if it is JSON as per your first example which uses json_decode) then $_POST won't be populated.