@ifap

PHP header('Content-Disposition: inline — почему не работает?

header('Content-Disposition: inline; filename=file.htm');

Не работает - в адресной строке остается адрес PHP скрипта.
Меняю inline на attachement - скачивается файл file.htm

Где может быть собака зарыта? Есть другой способ вывести результат работы PHP в файл с определенным именем, который автоматически отдастся браузеру? Т.е. в итоге нужно получить такое:
Здесь PHP-код что-то делает, а затем такой бац:
header('Content-Disposition: inline; filename=file.htm');
echo "Я тут поработал и устал!";
exit;

И посетитель сайта видит этот текст, а в адресной строке у него: https://somesite.ru/file.htm а не https://somesite.ru/script.php
  • Вопрос задан
  • 162 просмотра
Пригласить эксперта
Ответы на вопрос 1
ipatiev
@ipatiev Куратор тега PHP
Потомок старинного рода Ипатьевых-Колотитьевых
Забавно, что человек уже два месяца(!) бьётся головой об стену, вместо того, чтобы войти в дверь.
И способы решить свою проблему изобретает все более и более идиотские фантастические.

Собака зарыта в том, что Content-Disposition: inline не имеет смысла с filename=file.htm, Никакое имя в адресной строке этот заголовок не поменяет и никогда не делал ничего даже близко к этому.

Изменить адрес во время обращения сервер уже не может. Можно или сообщить клиенту, чтобы он запросил другой адрес (что делает совсем другой заголовок - Location), но в этом случае скрипт ничего не может вывести, или клиент должен был сразу запрашивать file.htm, а сервер при этом будет выполнять script.php
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы