Smarty + кэширование контента

avenger_msoft

Новичок
Smarty + кэширование контента

Привет Всем!

Подскажите, как правильно закэшировать такой шаблон:
PHP:
<form>
КОНТЕНТ
<input type="hidden" name="session" value="$SID">
</form>
или
PHP:
КОНТЕНТ<a href="index.php?session=$SID">
КОНТЕНТ для нескольких пользователей одинаков, но SID (PHPSESSION) разный. Как правильно закэшировать отдаваемый клиенту контент?

С уважением, Иван.
 

BRat

o_0
avenger_msoft
или 1. http://ru.php.net/manual/ru/ref.session.php#ini.session.use-trans-sid
или 2. http://smarty.php.net/manual/en/caching.cacheable.php (пример с dynamic)
 

avenger_msoft

Новичок

BRat

o_0
avenger_msoft
пересмотри свою религию

никогда с таким не встречался, проблема где-то в твоих шаблонах
 

avenger_msoft

Новичок
Автор оригинала: BRat
никогда с таким не встречался, проблема где-то в твоих шаблонах
Что по твоему я должен увидеть в результате выполнения этого кода:
PHP:
<?php

error_reporting(E_ALL); // report all errors

define('SMARTY_DIR', "./../includes/engine/Smarty/");
require_once(SMARTY_DIR . "Smarty.class.php");

class MySmarty extends Smarty {
	function MySmarty() {
		$this->Smarty();
		$this->caching = 1;
		$this->compile_dir		= dirname(__FILE__) . '/temp';
		$this->cache_dir		= dirname(__FILE__) . '/temp';
		$this->template_dir		= dirname(__FILE__);
		$this->compile_check	= false;
		$this->force_compile	= false;
		$this->cache_lifetime	= 60 * 60 * 24 * 10;

		$this->register_block('dynamic', 'smarty_block_dynamic', false);
	}
}

function smarty_block_dynamic($params, $content, &$smarty) {
	return $content;
}

$smarty = & new MySmarty();

$smarty->clear_cache("1.tpl");
$smarty->assign("dynamic_var", 5);
$fetch1 = $smarty->fetch("1.tpl");
if ($fetch1 != "5") die("5 : ". $fetch1);

$smarty->assign("dynamic_var", 6);
$fetch1 = $smarty->fetch("1.tpl");
if ($fetch1 != "6") die("6 : ".$fetch1);


unset($smarty);
$smarty = & new MySmarty();
$smarty->assign("dynamic_var", 7);
$fetch1 = $smarty->fetch("1.tpl");
if ($fetch1 != "7") die("7 : ".$fetch1);


?>
1.tpl
PHP:
{dynamic}{$dynamic_var}{/dynamic}


Проблема известная, а фикса не найти...

-~{}~ 12.12.06 09:33:

Автор оригинала: Solid
Насамом деле, подобные сессии очень опасны.
И чем же они опасны?

-~{}~ 12.12.06 09:35:

Автор оригинала: BRat
пересмотри свою религию
Я бы с удовольствием пересмотрел, но техническое задание не позволяет.
 

BRat

o_0
Solid
это не мне, ему пожалуйста
avenger_msoft
ничего не увидел?
PHP:
unset($smarty); 
$smarty = & new MySmarty();
а если убрать это, тоже ничего не увидишь?
Почему так - несколько десятков минут лазанья по Смарти, и поймешь


Хотя бы попытался свой код дебажить для приличия, прежде чем сюда писать, намного быстрей бы проблему свою решил.
 

avenger_msoft

Новичок
Автор оригинала: BRat
а если убрать это, тоже ничего не увидишь?
Почему так - несколько десятков минут лазанья по Смарти, и поймешь
Этого эффекта можно добиться и с одной копией смарти (без
PHP:
unset($smarty);  
$smarty = & new MySmarty();
)... Что касается этой проблемы - так это баг смарти. Обновил смарти до 2.6.16 и проблемы как не бывало...

Автор оригинала: BRat Хотя бы попытался свой код дебажить для приличия, прежде чем сюда писать, намного быстрей бы проблему свою решил.
Ты такой умный, тебе мозги не жмут? Это код, который наиболее простым образом репродуцирует ошибку с кэшированием.

-~{}~ 13.12.06 08:43:

2Solid
За ссылку спасибо! Но вы меня не убедили. Единственное, на счет чего я свами согласен, так это на счет закладок.
 
Сверху