imran_stxa
@imran_stxa
web-программист

Как правильно установить заголовки в PHP?

Нужно выдавать некоторую информацию из бд в в формате xls
для этого использую следующий код
if ($_GET['doctype']=='xls')
     {
            $do=$_GET['do'];
            $fiename="test_".date('d_m_y');
            header('Content-Type: application/vnd.ms-excel');
            header('Content-Disposition: attachment;filename="'.$fiename.'.xls"');
            header('Cache-Control: max-age=0');
            header('Cache-Control: max-age=1');
            header ('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); 
            header ('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT'); 
            header ('Cache-Control: cache, must-revalidate'); 
            header ('Pragma: public');  
          }
			else {
			header('Content-Type: text/html; charset=utf-8');
			header("Cache-Control: no-store"); header("Expires: " . date("r"));
			setlocale(LC_ALL, 'ru_RU.65001', 'rus_RUS.65001', 'Russian_Russia. 65001', 'russian');
			}

но есть необходимость использования session_start();
Если писать session_start(); выше этого кода то файл выдается в формате html.

Подскажите пожалуйста как использовать session_start(); и в тоже время выдавать файлы в разных форматах xls,doc,jpg.
  • Вопрос задан
  • 2932 просмотра
Решения вопроса 1
@IceJOKER
Web/Android developer
установите кодировку без BOM если UTF8, далее до <?php уберите любые символы(пробелы и т.п.), и до вывода чего-либо напишите session_start();

ну или можно ob_start() попробовать.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
BuriK666
@BuriK666
Компьютерный псих
session_start, если все хорошо не отправляет заголовка Content-type.
Ответ написан
Комментировать
@Rkwat
В логах подозрительное что-нибудь есть при E_ALL?
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы