Работает механизм сессий в Smarty or not?

vetale

Guest
Работает механизм сессий в Smarty or not?

В документации по Smarty не нашел и изобразил вот такую конструкцию:

{php}
session_start();
session_register("id");
$id = "foo";
{/php}

сессия записывается, переменная регистрируется, а ее значения нет - id|N;

в документации написано про $smarty.session.id, которая отлично выводит $id = "foo" если значение прописать в сессию руками.

Очень я подозреваю, что моя выше приведенная конструкция не очень правильная, мягко говоря.
 

kvf77

Red Devil
vetale

настоятельно рекомендую создавать эту переменную ВНЕ ШАБЛОНА

еще лучше делать так (если делать):
{php}
session_start();
$_SESSION['id'] = 'ddddd';
{/php}

это правильнее и надежнее
 

Demiurg

Guest
Smarty - это шаблонизатор, не надо пихать в него то, чего в нем быть не должно.
 

vetale

Guest
Автор оригинала: kvf77
vetale

настоятельно рекомендую создавать эту переменную ВНЕ ШАБЛОНА

еще лучше делать так (если делать):
{php}
session_start();
$_SESSION['id'] = 'ddddd';
{/php}

это правильнее и надежнее
И, разумеется, тоже не работает.

Это пожалуй, самое конструктивное сообщение. Другие почему-то вместо разговоров по-делу только делятся своим самым правильным мнением без ссылок на источники и без приведения конкретных примеров
 

kvf77

Red Devil
vetale

тебе дали самый конструктивный совет, в том числе и я - НЕ ДЕЛАЙ сессий в смарти - почему ты это считаешь не конструктивным?

к томуже не работает у тебя имеено по той пречине, которая описана в сылке, которую тебе Света дала
 

ForJest

- свежая кровь
vetale
в документации написано про $smarty.session.id, которая отлично выводит $id = "foo" если значение прописать в сессию руками.
Эта переменная предназначена для ДОСТУПА к значениям.
А не для их модификации.
как и любая другая переменная Smarty
Если ты сделаешь
$tpl-> assign('A', array('a'=>10, 'b'=>20));
И потом поытаешься сделать
{$A.b=30} то куда по-твоему сохранится резльутат? :)
----------------------
Поэтому сессию инициализируй вне смарти.
 

vetale

Guest
Автор оригинала: ForJest
vetale

Эта переменная предназначена для ДОСТУПА к значениям.
А не для их модификации.
как и любая другая переменная Smarty
Если ты сделаешь
$tpl-> assign('A', array('a'=>10, 'b'=>20));
И потом поытаешься сделать
{$A.b=30} то куда по-твоему сохранится резльутат? :)
----------------------
Поэтому сессию инициализируй вне смарти.
Огромное спасибо. Я понял свою ошибку.
 
Сверху