У меня есть PHP, который обрабатывает запрос GET через строку запроса. После завершения обработки этой строки запроса создается страница с результатами.
Все идет нормально. Но URL-адрес в браузере сохраняет строку запроса, поэтому, например, если вы нажмете перезагрузить, он снова попытается обработать GET.
Поэтому я хотел бы сгенерировать страницу, но вернуться без строки запроса. Я попытался настроить header() на запрос URL-минус, но он перенаправляет (т.е. перезагружает) страницу, а не возвращает ее напрямую.
Я бы подумал, что это обычная и простая задача, но я не могу найти решения ...!
Изменить URL-адрес браузера без перезагрузки можно только на стороне клиента. См. эта почта






Если кто-нибудь наткнется на этот пост ...
В общем случае, учитывая сложность изменения URL-адреса на стороне сервера, проще всего сделать его POST или использовать AJAX.
Обновить: Но в моем случае это страница, на которой пользователь может изменить информацию об учетной записи, которая затем должна быть отражена на этой странице. Ответ в этом случае прост: сначала обновите базу данных, а затем просто перенаправьте на ту же страницу: parse_url($_SERVER['REQUEST_URI'],PHP_URL_PATH)
Все остальное сделает регулярная обработка PHP.
Основная проблема в том, что вы абсолютно НЕ ДОЛЖНЫ использовать GET для обработки чего-либо. GET должен быть безопасным, а обновление не должно иметь побочных эффектов. Обычно люди решают эту проблему следующим образом:
POSTНаиболее правильный код статуса перенаправления для этого - 303 See Other, но обязательные фреймворки будут использовать 302 Found.
Спасибо. Обычно я перенаправляю, но это ситуация «на месте». Я пошел с ПОЧТОЙ ...
так почему это было понижено? Что-то мне не хватает?