php://input
is working properly in localhost. But in server it returns empty.
Input( request ) to my site is a json
(REST - application/json type), so $_POST
didn't work ( please read This question ) .
$_POST works with key-value pair type inputs like form-data or x-www-urlencoded
key1=value1&key2=value2&key3=value3
I'm using application/json
as input (in REST).
Like {'key1':'value1','key2':'value2','key3':'value3'}
This can't be handled using $_POST
. But using php://input
can help to read that data.
My code
class Webservice_Controller extends CI_Controller {
public $json_input_data;
public function __construct(){
parent::__construct();
$this->json_input_data = json_decode(file_get_contents('php://input'),TRUE);
}
public function json_input($label){
if(isset($this->json_input_data[$label])) return $this->json_input_data[$label];
else return NULL;
}
}
Above code is works fine in another webserver also, But not in the current one. :(
I think my web server deny access to php://input
.
Is there is any other methods to read json input in php ?