Блин, третья попытка. Можешь показать, КАКУЮ ты ему будешь давать ссылку, чтобы скачать файл? Вот я хочу скачать файл doc.txt. Как будет выглядеть ссылка?
почитай про паттерн POST/Redirect/GET. Пока у тебя все по одному адресу - он работает. Но если на разных, то в случае ошибки тебе придется данные формы и сообщения об ошибках передавать через сессию
не понимаю, почему надо так тщательно от клиента счет скрывать. во всех интернет-магазинах, которыми я пользуюсь, мне сначала в подробностях показывают, за что я плачу, и только потом берут деньги. Не понимаю, зачем временный id и что это такое. Я бы давал постоянный ид, и еще велел юзеру его записать. Чтобы если какие-то проблемы при оплате, он мог хоть что-то внятное сказать оператору.
Если у тебя там только одно слово, то $_SERVER['QUERY_STRING']. Если больше, то первый ключ - key($_GET). Если совсем любой по номеру, то $keys = array_keys($_GET);
то есть, вся проблема в этом? Не в API и не в MVC и не в других страшных словах, а вот так вот, по-простецки: "как получить название первого или n GET параметра"? почему же ты тогда именно этот вопрос не задал?
Чем же твой вариант "приятнее" и "удобнее" инклюда? У тебя задача какая? Разнести форму и обработчик? Инклюд ее решает? Какие-то дополнительные действия типа изменения экшена формы требует? Нет. Где приятность?