Если вы не собираетесь редактировать HTML, это позволит вам делать то, что вы ищете; он заполнит суперглобальный $_REQUEST
и перезапишет его содержимое.
Предполагается, что PHP версии 5.3, потому что он использует Ternary Shortcut Operator. Это можно удалить.
$rawget = isset($_SERVER['QUERY_STRING']) ? $_SERVER['QUERY_STRING'] : false;
$rawpost = file_get_contents('php://input') ?: false;
$target = $rawget;
$_REQUEST = array();
if ($target !== false) {
$pairs = explode('&',$rawget);
foreach($pairs as $pair) {
$p = strpos($pair,'=');
if ($p === false && !empty($pair)) {
$_REQUEST[$pair] = null;
}
elseif ($p === 0 || empty($pair)) {
continue;
}
else {
list($name, $value) = explode('=',$pair,2);
$name = preg_replace('/\[.*\]/','',urldecode($name));
$value = urldecode($value);
if (array_key_exists($name, $_REQUEST)) {
if (is_array($_REQUEST[$name])) {
$_REQUEST[$name][] = $value;
}
else {
$_REQUEST[$name] = array($_REQUEST[$name], $value);
}
}
else {
$_REQUEST[$name] = $value;
}
}
}
}
В нынешнем виде он будет обрабатывать только переменные QueryString / GET; чтобы обработать сообщение, измените третью строку на что-то вроде
$target = ($rawget ?: '') . '&' . ($rawpost ?: '');
С учетом всего вышесказанного, я все равно рекомендую изменить HTML, но если по какой-то причине это не вариант, то это следует сделать.