$ _ GET и $ _POST пусты, потому что вы используете протокол POST, но отправляете переменные через метод GET (кодируя их в URL).
PHP находит используемый метод POST, поэтому он устанавливает нулевую информацию в переменной $ _GET, а затем анализирует переменные, отправленные в данных POST формы, в переменную $ _POST, т.е.
С другой стороны, переменная $ _REQUEST работает по другому механизму, где она будет анализировать все переменные из запроса, независимо от того, были ли они получены из файлов cookie, составных данных, публикации, получения и т. Д. Именно поэтому вы видите их там.
Обычно сценарии и приложения в любом случае отрабатывают данные $ _REQUEST, поскольку это гораздо более краткий сбор всех данных, и, поскольку технически вы никогда не сможете получить данные GET и POST в одном запросе, вам не нужно беспокоиться о коллизии между наборами данных.