Невозможно получить поле GET в php

#php

#php

Вопрос:

Я пытаюсь использовать GET в php, когда я смотрю на URL-адрес запроса, он включается туда, но при использовании $_GET['data'] для извлечения из запроса он показывает, что поле не существует или не определено.

Примечание: В localhost проблема не возникает, только в live hosting.

Localhost, Xampp с Apache и MySQL, Windows 7, PHP-5.6

Живой хост: PHP-5.6

В DevTools (Chrome):

 Request URL: https://XXXXXXXXXXXX/admin/sorter.php?action=sortamp;data={"query":"KVKfHQWE60uw4aFL2dYSp4nAWXk78irL7MmY4Bp7WMvBPg_PLUS_CdsZftwVxC7E2gjlSABpcr0hKYxOR3Ua6jgKCHIJbBlru35ZYCGwXSx6ky_PLUS_j0n4xB3BzDQYrxnhkEVl8_SLASH_7MmY4Bp7WMteLWJpMFo2q54pQXhWVwElglsGWu7fllj6qcS3HGrAJtSD1j_SLASH_rL4tbfDoJEgL1fEqKiuSyD72Gaq1WpzBRaMAzm_PLUS_FgRu1cs6Cm0zTdOI1vVeOByw0tU6R0ZHFdDLUHJei1jkRxe_SLASH_4EvOkySZIDEDI0btRsLmQBWguSS0cl5OkttdtJ7s9A8GR8qKCbs_PLUS_EhJjGTH9VixaDp4cmlij4YKeVgTjsI9zmwYeiq7BVTGK6a9ULdgbEvEI2Aduqce1kuQGx1ClL2AsOVPpLu48c1oFoWisqYI7qmM1V74kRVBXIfyw_EQUALS__EQUALS_","num":"1","table":"work_order","sortby":"ASC","field":"w.wo_no"}amp;archive_list=false
  

Метод запроса: GET

Строка запроса:

 action: sort
data:{
 "query":"KVKfHQWE60uw4aFL2dYSp4nAWXk78irL7MmY4Bp7WMvBPg_PLUS_CdsZftwVxC7E2gjlSABpcr0hKYxOR3Ua6jgKCHIJbBlru35ZYCGwXSx6ky_PLUS_j0n4xB3BzDQYrxnhkEVl8_SLASH_7MmY4Bp7WMteLWJpMFo2q54pQXhWVwElglsGWu7fllj6qcS3HGrAJtSD1j_SLASH_rL4tbfDoJEgL1fEqKiuSyD72Gaq1WpzBRaMAzm_PLUS_FgRu1cs6Cm0zTdOI1vVeOByw0tU6R0ZHFdDLUHJei1jkRxe_SLASH_4EvOkySZIDEDI0btRsLmQBWguSS0cl5OkttdtJ7s9A8GR8qKCbs_PLUS_EhJjGTH9VixaDp4cmlij4YKeVgTjsI9zmwYeiq7BVTGK6a9ULdgbEvEI2Aduqce1kuQGx1ClL2AsOVPpLu48c1oFoWisqYI7qmM1V74kRVBXIfyw_EQUALS__EQUALS_",
 "num":"1",
 "table":"work_order",
 "sortby":"ASC",
 "field":"w.wo_no"
}
archive_list: false
  

PHP-код:

 print_r($_GET);
  

Вывод:

 Array
(
    [action] => sort
    [archive_list] => false
)
  

Я ожидаю, что оно будет отображаться как
Вывод:

 Array
(
    [action] => sort
    [data] => {query etc.}
    [archive_list] => false
)
  

Ответ №1:

в качестве решения моей проблемы я реализую код, который проверяет, отсутствует ли поле «данные«, а затем получает «данные» с помощью parse_url.

if (!(isset($_GET['data']))){
$url = $_SERVER['REQUEST_URI'];
$n_data=(parse_url($url));
parse_str($n_data['query'],$output);
$data= json_decode($output['data'],true);
}

Если есть, можете ли вы посоветовать, есть ли какая-либо фильтрация, которая удаляет переменную GET [‘data’] при обработке PHP. я уже проверяю свои коды, там нет перенаправления или каких-либо других, которые изменяют GET [‘data’] .