Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Вопрос на тему COOCKIE

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Есть теоретический вопрос на тему куки для корзины интернет-магазина
Master_YI
Отправлено: 04 Августа, 2014 - 21:18:34
Post Id



Частый гость


Покинул форум
Сообщений всего: 149
Дата рег-ции: Авг. 2012  


Помог: 0 раз(а)




Я не использовал куки раньше так что я просто новичок в этом. Все что я знаю о них я прочитал с самых разных сайтов.

Проблема: куки не сохраняется после обновления страницы.

В чем проблема: так как куки нужно отправлять до того как пойдут все скрипты оно находится в начале с "value" = переменная счетчика $counter. (Счетчик считает сколько товаров будет находится в корзине пользователя, каждый товар = +1 к счетчику.) Так как я только в конце файла записываю в куки это значение оно там есть и его можно вывести. Но если обновить страницу - куки обнуляется так как переменная теперь пустая и в куки нечего записать.

Я нашел решение и хочу спросить у вас совета:
Я думаю создать переменную массива GET что бы та передавалась с страницы на страницу и каждый раз по началу файла записывалась в куки как новая.

Может я конечно вообще ничего не шарю в этом, тогда подскажите как лучше это сделать?
 
 Top
teddy
Отправлено: 04 Августа, 2014 - 21:45:31
Post Id


Участник


Покинул форум
Сообщений всего: 1462
Дата рег-ции: Апр. 2013  


Помог: 91 раз(а)




Master_YI пишет:
Но если обновить страницу - куки обнуляется

Так Вы сами ответили на свой вопрос. Если кука "обнуляется", значит Вы её перезаписываете каждый раз, либо слишком краток срок её жизни. Нужно сделать проверочку, если куки нет, то её нужно создать, если кука уже есть, тогда мы просто используем её значение в нужных целях.

Предполагаю, что проверки на isset у Вас нет, в соответствии с этим, повторный вызов функции setcookie с аналогичными параметрами(в частности, название самой куки) просто перезапишет прежде сохраненное значение. Отсюда происходит и обнуление.

http://php.net/manual/ru/function.setcookie.php
Курите.
 
 Top
Tyoma5891
Отправлено: 04 Августа, 2014 - 21:48:37
Post Id


Частый посетитель


Покинул форум
Сообщений всего: 621
Дата рег-ции: Авг. 2013  


Помог: 5 раз(а)




Master_YI пишет:

Может я конечно вообще ничего не шарю в этом, тогда подскажите как лучше это сделать?

смысл куков как раз в том чтобы использовать их при обновлениях страниц Улыбка
 
 Top
Master_YI
Отправлено: 05 Августа, 2014 - 13:47:43
Post Id



Частый гость


Покинул форум
Сообщений всего: 149
Дата рег-ции: Авг. 2012  


Помог: 0 раз(а)




teddy пишет:
Предполагаю, что проверки на isset у Вас нет, в соответствии с этим, повторный вызов функции setcookie с аналогичными параметрами(в частности, название самой куки) просто перезапишет прежде сохраненное значение. Отсюда происходит и обнуление.


Согласен, это я исправил:

PHP:
скопировать код в буфер обмена
  1. if (isset($_COOKIE[goods_counter])) {setcookie("goods_counter", 0);}


После чего я добавил это:

PHP:
скопировать код в буфер обмена
  1. $_COOKIE[goods_counter] = $_COOKIE[goods_counter]+1;
  2. echo $_COOKIE[goods_counter];


Но куки всегда равняется только 1(а по идее должен увеличиваться на 1 каждый раз при обновлении страницы). Он ведь не должен более обнулятся, он теперь проверяется в начале на существование.
Почему такое происходит?

(Отредактировано автором: 05 Августа, 2014 - 13:50:59)

 
 Top
RickMan
Отправлено: 05 Августа, 2014 - 14:16:04
Post Id


Участник


Покинул форум
Сообщений всего: 1033
Дата рег-ции: Май 2012  


Помог: 30 раз(а)




Значение кукиса можно менять только через setcookie, насколько я помню.
 
 Top
Tyoma5891
Отправлено: 05 Августа, 2014 - 14:16:22
Post Id


Частый посетитель


Покинул форум
Сообщений всего: 621
Дата рег-ции: Авг. 2013  


Помог: 5 раз(а)




Master_YI пишет:

Согласен, это я исправил:

PHP:
скопировать код в буфер обмена
  1. if (isset($_COOKIE[goods_counter])) {setcookie("goods_counter", 0);}

Он ведь не должен более обнулятся, он теперь проверяется в начале на существование.
Почему такое происходит?

Вы хоть сами понимаете что Вы делаете? Улыбка
перечитайте 48 раз эту строчку кода внимательно...
 
 Top
Master_YI
Отправлено: 05 Августа, 2014 - 14:25:56
Post Id



Частый гость


Покинул форум
Сообщений всего: 149
Дата рег-ции: Авг. 2012  


Помог: 0 раз(а)




Tyoma5891 пишет:

перечитайте 48 раз эту строчку кода внимательно...

Так. Как я писал выше - все что я узнал и ПОНЯЛ про куки это то что я прочел с сайта этого и емуподобного с тем же текстом. Как я прочитал то к куки можно обращаться(если он существует) с помощью $_COOKIE[название], иначе его нужно задать с помощью setcookie.
НУ своими попытками исправить проблему я обнаружил некие факты, которые описать не могу ибо чего-то не понимаю.
Так поясните же мне что я пропустил?
(Добавление)
RickMan пишет:
Значение кукиса можно менять только через setcookie, насколько я помню.

ДА? Это только читать его можно с помощью $_COOKIE[название]?
Если так то у меня только один способ через ГЕТ массив?
 
 Top
Tyoma5891
Отправлено: 05 Августа, 2014 - 14:37:59
Post Id


Частый посетитель


Покинул форум
Сообщений всего: 621
Дата рег-ции: Авг. 2013  


Помог: 5 раз(а)




задаются кукисы и удаляются с помощью функции setcookie, чтение значений в кукисах осущесвтляется с массива $_COOKIE что непонятно тут же просто все? Улыбка

(Отредактировано автором: 05 Августа, 2014 - 14:43:39)

 
 Top
Master_YI
Отправлено: 05 Августа, 2014 - 14:57:38
Post Id



Частый гость


Покинул форум
Сообщений всего: 149
Дата рег-ции: Авг. 2012  


Помог: 0 раз(а)




Tyoma5891 пишет:
задаются кукисы и удаляются с помощью функции setcookie, чтение значений в кукисах осущесвтляется с массива $_COOKIE что непонятно тут же просто все? Улыбка

Эх.. Все чуть сложнее, я не так понял что прочитал. Всем спасибо!
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB