2012-05-31 8 views
0

Я пытаюсь установить главную страницу для перезагрузки с помощью строки запроса, чтобы она не поступала из кэшированного файла. страница index.php, но я бы хотел, всякий раз, когда загружается страница, hava добавляет к ней уникальную строку (например, ответ в комментариях от Rocket до a previous question of mine).интегрировать проверку кешированной страницы в файл индекса

Я хотел бы интегрировать его в php, который аутентифицирует логины.

Это что-то вроде этого хорошая идея,

<?php 

require_once('login-config.php'); 

//use javascript cookie to detect if the page is coming from hash 
//and if so, redirect to a new url with a ?<?=time()?> query sting 

if (!isset$($_COOKIE['login_cookie']) 
{ 

//render login-form page 

} 
else 
{ 

//redirect to the content page 

} 

Код JavaScript проверка кэш/печенье из this page (следующим образом)

var uniqueKey = '<%= SomeUniqueValueGenerator() %>'; 
var currentCookie = getCookie(uniqueKey); 
var isCached = currentCookie !== null; 
setCookie(uniqueKey); //cookies should be set to expire 
         //in some reasonable timeframe 

Я предполагаю, что я должен сделать что-то вроде этого,

//best guess is that I update this uniqueKey every time I update the page 
//and want it not to load from cache 
var uniqueKey = 'v1.1'; 
var currentCookie = getCookie(uniqueKey); 
var isCached = currentCookie !== null; 

if (!isCashed){  
    setCookie(uniqueKey); 
    window.location'?".time().";' 
} else { 
    window.location'?".time().";' 
} 

, но я немного не уверен, как свести все это вместе.

Благодаря

+0

Почему вы хотите использовать javascript? Вы можете сделать это в PHP-коде. –

+0

У меня нет никаких предпочтений, когда это делается. У меня просто есть некоторые пользователи, которые не могут получить доступ к странице, однако, как только они очистили кеш, проблема исчезла. Я ищу самый простой способ получить их браузеры _not_ для загрузки из кеша. открывать любые другие предложения! – 1252748

ответ

1

Это не обязательно остановит браузер от кэширования страницы, ваши лучше посылать не кэш заголовки ...

header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Date in the past 
+0

, и это будет работать для пользователей, у которых уже есть кеширование. это заставит их перезагрузить контент? – 1252748

+0

да, это должно быть сделано, заголовки не кэшированы – fire

0

Я считаю, что это PHP код будет делать то, что вы хотите:

if (!isset$($_COOKIE['login_cookie']) 
{ 
    //render login-form page 
} 
else 
{ 
    //redirect to the content page 
    header("Location: index.php?t=" . time()); 
    exit(); 
} 
+0

, которые будут работать для страницы, на которую я перенаправляюсь, но я говорю о том, чтобы даже дать индекс a query_string, чтобы, когда они просто переходят на главную страницу для входа, набрав, например, www.site.com/dir/, они действительно попадают на сайт www.site.com/dir/index.php?847283479 спасибо! – 1252748

+0

Если вы хотите, чтобы страница никогда не кэшировалась, используйте заголовки кэша no. ответ огня отвечает им. –

Смежные вопросы