Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Кеширует так, что не помогают никакие заголовки

Сообщения:  [1-8] 

 
 автор: Николай Законов   (10.08.2006 в 18:08)   письмо автору
 
   для: romza   (10.08.2006 в 14:20)
 

Функция headers_sent($file, $line) проверяет, были ли отправлены заголовки.

Возвращает false, если заголовки уже отправлены. Параметры $file и $line возвраща.n имя файла и номер строки. Попробуй использовать ее.

   
 
 автор: cheops   (10.08.2006 в 17:47)   письмо автору
 
   для: romza   (10.08.2006 в 14:20)
 

У вас что-то выводится в окно браузера до вызова функции header() - так нельзя, заголовки должны отправляться до тела документа. Посмотрите, что находится в 8 строке "адрес скрипта".

   
 
 автор: romza   (10.08.2006 в 14:20)   письмо автору
 
   для: Trianon   (10.08.2006 в 10:31)
 

Вставил таки образом:


<?php 
/* --- Ставим запрет на кеширование --- */
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: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0"false);
header("Pragma: no-cache");
?>


а он мне почему то выдает следующее сообщение:

Warning: Cannot modify header information - headers already sent by (output started at "адрес скрипта":8) in "адрес скрипта" on line "строка где расположен заголовок"

и так на все эти заголовки... почему???

   
 
 автор: Trianon   (10.08.2006 в 10:31)   письмо автору
 
   для: Николай Законов   (10.08.2006 в 10:16)
 

Ясно.
Стормозил, не заметил gmdate.

   
 
 автор: Николай Законов   (10.08.2006 в 10:16)   письмо автору
 
   для: Trianon   (10.08.2006 в 09:42)
 

Это строка говорит о том, что документ последний раз обновлялся именно сейчас gmdate("D, d M Y H:i:s". И видя дату браузер будет скачивать этот документ заново, т.к. у него в кеше странички с текущей датой еще нет.

   
 
 автор: Trianon   (10.08.2006 в 09:42)   письмо автору
 
   для: Николай Законов   (10.08.2006 в 00:00)
 

> header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
В высшей степени странная строка....

   
 
 автор: Николай Законов   (10.08.2006 в 00:00)   письмо автору
 
   для: romza   (09.08.2006 в 17:24)
 

Как правило в PHP для этого достаточно пользователю послать следующую группу заголовков:


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: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");


Не переставляй заголовки местами.

   
 
 автор: romza   (09.08.2006 в 17:24)   письмо автору
 
 

Как избавится от этого

прописал уже два заголовка:


<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="Cache-Control" content="no-cache">


И все равно не работает, помогает только F5.

Что делать???

Или могу ли я как-либо определять, взята страница из кэша или нет???

   

Сообщения:  [1-8] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования