Cookies

1482909

Новичок
При переходе по ссылке site.ru?market=1
Кука устанавливается сразу, это видно:
index.php
PHP:
if (isset($_GET["market"])) {
        setcookie("market", 1, time()+3600, "/");
        $_COOKIE['market']=1;
   
        echo $_COOKIE['market'];
}
но в smarty шаблоне получаю ее только со второго раза, почему так?
 

Фанат

oncle terrible
Команда форума
потому что установить и получить - это разные вещи.
 

1482909

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

Фанат

oncle terrible
Команда форума
Я не вижу, где здесь ты получаешь куку. Не говоря уже о том, что это в принципе невозможно
 

AmdY

Пью пиво
Команда форума
наверное смарти копирует их при старте, вот твои изменения и не видны.
не стоит в смарти юзать хелперы для доступа к кукам и прочим глобальным переменным, передавай их в шаблонизатор ручками.
 

1482909

Новичок
наверное смарти копирует их при старте, вот твои изменения и не видны.
не стоит в смарти юзать хелперы для доступа к кукам и прочим глобальным переменным, передавай их в шаблонизатор ручками.
PHP:
        if (isset($_GET["market"])) {
            setcookie("market", $_GET["market"], time()+3600, "/");
        }
        var_dump($_COOKIE['market']);
Это прям в контроллере у меня уже.
Буду пробывать дебажить, иначе я не пойму
 

AmdY

Пью пиво
Команда форума
@Andkorol потому он и делает setcookie("market", 1, time()+3600, "/"); $_COOKIE['market']=1;
 

Adelf

Administrator
Команда форума
Советую ознакомиться.
https://ru.wikipedia.org/wiki/Post/Redirect/Get
Если эту привычку приобрести, то многие проблемы сами уйдут.

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

Andkorol

Новичок
@AmdY, в крайнем приведённом коде ТС никакого $_COOKIE['market']=1; нет.
Похоже, код «методом тыка» на ходу сочиняется :)
 
Сверху