Открытие сессии мешает загрузке файла в ms word

rsv

Новичок
Открытие сессии мешает загрузке файла в ms word

Из основного скрипта есть ссылка типа
report.php?rptid=1

в файле report.php
написано
session_start();
потом
готовится отчет, который является html файлом
в конце
пишется вот так
PHP:
    header('Content-Disposition: attachment; filename="report.doc"');
    header('Content-type: Application/vnd.ms-word');
    echo $report;
при клике на ссылку в IE
у юзера открывается ms word и сообщает об ошибке:
Файл не найден
Попробуйте выполнить следующие действия
Убедитесь что имя документа введено правильно
Попробуйте другое имя файла
Далее идет строка с путем к фременному файлу в папке "Temporary Internet Files"

если в начале скрипта убрать
session_start();
то ms word нормально открывается и загружает файл отчета
в мозиле в любом случае word нормально открывается

похоже, что при старте сессии пхп отправляет какие то заголовки которые IE смущают и он word запускает но загруженный временный файл почему то удаляет сразу же
Может кто сталкивался с чем то подобным?
 

rsv

Новичок
всем спасибо
помогло

-~{}~ 19.01.06 17:29:

хех
теперь обнаружился косяк с тем что ИЕ кеширует загруженный отчет, а он все время новый
такую строку пробовал
header('Expires: Thu, 01 Dec 1994 16:00:00 GMT');
не помагает :(

помогла подстановка в ссылку случайного числа, хотя это конечно изврат
 

zarus

Хитрожопый макак
Я вот такие хидеры использую... точнее, где-то откопал и поставил на сайт, не разбираясь :)
// Date in the past
header('Cache-control: no-cache="set-cookie"');
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
// always modified
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
// HTTP/1.1
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
// HTTP/1.0
header("Pragma: no-cache");

з.ы. Читать документацию по заголовкам лень. Как в анекдоте:
- И все-все-все работает?
- Ну да...
- Тогда даже не вздумай дебажить!..
 

zarus

Хитрожопый макак
Автор оригинала: kruglov
Так вам надо кэшировать или нет?
Ему надо отдать сформурованную страницу в виде файла MSWord, и при этом не кешировать. По крайней мере, я так понял.
И вообще, мой предыдущий пост - оффтоп. Извиняюсь. Я не спал уже 3е суток :/
 

rsv

Новичок
в общем как я понял из вышеуказанных ссылок
Last-Modified мне поможет 8)
 

Max_shark

Новичок
Народ, спасайте плиз.... вот столкнулся точно с такой же проблемой... если убрать старт сессии, то всё нормально... но с сессией работать не хочет.... Word выдает ошибку о том, что не находит файл...

session_cache_limiter("private"); или header("Pragma: cache"); - после них Word открывает документ, НО последующие открытия этого документа приводят к тому, что Word открывает его из кэша, старый.... а необходимо, чтоб он новый документ скачивал...
Пробывал то, что в ссылках, которые дал SiMM... ничего не выходит....

rsv, ты решил эту проблему ?
 
Сверху