For the get request we can convert the query string to string using,
parse_str($_SERVER['QUERY_STRING']);
But for the post method above method don't work. Is there another method which will make the post query to the string.
For the get request we can convert the query string to string using,
parse_str($_SERVER['QUERY_STRING']);
But for the post method above method don't work. Is there another method which will make the post query to the string.
Unless you are running PHP from the command line, PHP will populate the superglobal arrays $_GET and $_POST (among others) with the parsed query values and respective post body values. It will do that automatically, so there is no reason why you would parse_str on the query string like you show.
Quoting the PHP Manual for $_POST
An associative array of variables passed to the current script via the HTTP POST method when using
application/x-www-form-urlencodedormultipart/form-dataas the HTTP Content-Type in the request.
This is the prefered way of accessing POST data. However, you can also get access to the raw post body, via the php://input stream or $HTTP_RAW_POST_DATA (the latter is deprecated in PHP 5.6.0, and REMOVED as of PHP 7.0.0).
Quoting the PHP Manual on input streams:
php://inputis a read-only stream that allows you to read raw data from the request body. In the case of POST requests, it is preferable to usephp://inputinstead of$HTTP_RAW_POST_DATAas it does not depend on special php.ini directives. Moreover, for those cases where$HTTP_RAW_POST_DATAis not populated by default, it is a potentially less memory intensive alternative to activatingalways_populate_raw_post_data.php://inputis not available withenctype="multipart/form-data".