Обработать запрос GET, но удалить строку запроса

У меня есть PHP, который обрабатывает запрос GET через строку запроса. После завершения обработки этой строки запроса создается страница с результатами.

Все идет нормально. Но URL-адрес в браузере сохраняет строку запроса, поэтому, например, если вы нажмете перезагрузить, он снова попытается обработать GET.

Поэтому я хотел бы сгенерировать страницу, но вернуться без строки запроса. Я попытался настроить header() на запрос URL-минус, но он перенаправляет (т.е. перезагружает) страницу, а не возвращает ее напрямую.

Я бы подумал, что это обычная и простая задача, но я не могу найти решения ...!

так почему это было понижено? Что-то мне не хватает?

dhc 04.10.2018 03:25

Изменить URL-адрес браузера без перезагрузки можно только на стороне клиента. См. эта почта

Ricky Mo 04.10.2018 03:45
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
2
62
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Если кто-нибудь наткнется на этот пост ...

В общем случае, учитывая сложность изменения URL-адреса на стороне сервера, проще всего сделать его POST или использовать AJAX.

Обновить: Но в моем случае это страница, на которой пользователь может изменить информацию об учетной записи, которая затем должна быть отражена на этой странице. Ответ в этом случае прост: сначала обновите базу данных, а затем просто перенаправьте на ту же страницу: parse_url($_SERVER['REQUEST_URI'],PHP_URL_PATH)

Все остальное сделает регулярная обработка PHP.

Основная проблема в том, что вы абсолютно НЕ ДОЛЖНЫ использовать GET для обработки чего-либо. GET должен быть безопасным, а обновление не должно иметь побочных эффектов. Обычно люди решают эту проблему следующим образом:

  • Выполнение некоторой обработки с запросом POST
  • Перенаправление на страницу результатов.

Наиболее правильный код статуса перенаправления для этого - 303 See Other, но обязательные фреймворки будут использовать 302 Found.

Спасибо. Обычно я перенаправляю, но это ситуация «на месте». Я пошел с ПОЧТОЙ ...

dhc 05.10.2018 03:47

Другие вопросы по теме