I know this question was about POST via a Form, but came here looking for answers for similar issue when POSTing with JSON content-type. Found the answer and wanted to share it as it cost me much time.
When using JSON content-type the $_POST array will not populate (only with multi-part forms I believe)
Here is what did work to correct the issue:
$rest_json = file_get_contents("php://input"); $_POST = json_decode($rest_json, true);
hope this helps someone!