Мой скрипт должен выполнить некое преобразование файлов. Параметры преобразования я отправляю через GET-запрос. В результате пользователь видит сообщение о том что всё Ok и некие результаты работы скрипта. Адресная строка при этом меняется на подобие http://localhost/admin.php?part=a&act=2 А хотелось бы чтобы пользователь увидел изначальный адрес http://localhost/admin.php?part=a Это нужно чтобы избежать повторного выполнения скрипта при обновлении страницы. Похоже, обычно отображается сначала страница с сообщением что всё Ok а потом происходит редирект на исходную страницу. Но хотелось бы сразу отобразить исходную страницу с сообщением что всё Ok где-нибудь вверху. Как можно поступить в этой ситуации.
выполнить скрипт а в выводе сделать только: PHP: header("Location: [url=http://localhost/admin.php?part=a]http://localhost/admin.php?part=a[/url]");
Проверил. При этом, как я понимаю происходит редирект. В результате пользователь видет исходную страницу без уведомления о результате выполнения скрипта. Вот лог FireFox Live HTTP headers:
Для уведомления после редиректа просто в сессию положи флаг, типа update_success = true, а в скрипте вывода проверяй наличие этого флага.
точно Ещё два момента, по крайней мере, надо уяснить: 1. Похоже, нужна какая-то логика чтобы ID сессии передать 2. Код 302 менять не надо?
1. SID передается в куках, как правило. Если хочешь передавать в заголовке тоже, можешь получить идентификатор сессии или функцией session_id() или из константы SID и присоединить ее к строке с заголовком. 2. Ну, тут на твое усмотрение. Можешь для красоты поменять на 201 или 202, но обычно браузеру безразличен код редиректа, если ты конечно не делаешь какой нить REST-сервис, где клиентом может выступать не только браузер.