Разработчики PHP реализовали это для поддержки register_globals (), но если бы они остановились на более чем одну секунду, чтобы рассмотреть последствия, то они бы изменили только имена, импортированные в пространство имен глобальной переменной, а не в саму $ _POST , Нет никаких причин изменять сами переменные запроса ... ну, кроме того, что PHP не способен обрабатывать стандартные представления формы.
Вот решение для переменных POST, которое, вероятно, сложнее для большего числа пользователей, чем решение GET:
function post_data(){
$data=explode('&',file_get_contents("php://input"));
$post=array();
foreach ($data as $var){
list($key,$value)=explode('=',$var,2);
$post[$key]=urldecode($value);
}
return $post;
}