php $_POST array empty upon form submission
I have a custom Content Management System (CMS) I've built that works perfectly on my dev box (Ubuntu/PHP5+/MySQL5+).
I just moved it up to the production box for my client and now all form submissions are showing up as empty $_POST arrays.
I found a trick to verify the data is actually being passed using file_get_contents('php://input');
and the data is showing up fine there -- the $_POST
/$_REQUEST
arrays are always empty.
I've also verified the content-type headers are correct as well via firebug (application/x-www-form-urlencoded; charset=utf-8
).
This issue is happening regardless of whether a form is submitting via AJAX or a regular form submit.
Any help is greatly appreciated!
Solution 1:
When using JSON content-type the $_POST
array will not populate (only with multi-part forms I believe)
Here is how I correct the issue:
$_POST = json_decode(file_get_contents("php://input"), true);
Solution 2:
Here's another possible cause -- my form was submitting to domain.com without the WWW. and I had set up an automatic redirect to add the "WWW." The $_POST array was getting emptied in the process. So to fix it all I had to do was submit to www.domain.com