Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
1 / 1 / 2
Регистрация: 20.10.2011
Сообщений: 154

COOKIE в PHP

24.03.2016, 15:57. Показов 1705. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Примерно обрисую вопрос: есть торговый каталог. Если пользователь зарегистрирован, то ему из БД выдирается его корзина по USER_ID. Если нет - то по COOKIE['BASKET_ID']. Если и кукисов нет, то, соответственно, создается новая корзина и прописывается в базу и COOKIE.
Устанавливаю COOKIES так: setcookie('BASKET_ID', $hash, time()+60*60*24*365*10);
Теперь вопрос: у меня для каждой страницы сайта свой COOKIES['BASKET_ID'] (специально сейчас в браузере проверил. Т.е. при переходе на новую страницу корзина создается заново. Скажите, что я делаю не так и как эту проблему решить?
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
24.03.2016, 15:57
Ответы с готовыми решениями:

php + cookie
я новачьок( <h1> Pleas enter password and login</h1> <form method = post action = "Cookie1.php"> <table border = 1> <tr> ...

PHP cookie
Здравствуйте. Не давно увлекся PHP, так что пожалуйста не судите строго и помогите разобраться. В директории находиться файл index.php и...

COOKIE в php
Код в файле index.php(через setcookie вылезало предупреждение "Cannot modify header information - headers already sent by") : ...

3
 Аватар для maruo
133 / 133 / 48
Регистрация: 26.04.2013
Сообщений: 1,356
24.03.2016, 16:19
Ну У вас проверяется как то ? Если есть уже куки, значит не создаем их заного, а используем ту которая есть.
А если куки нету то создаем?
0
1943 / 1768 / 825
Регистрация: 23.01.2014
Сообщений: 6,230
24.03.2016, 22:07
Цитата Сообщение от Fresh_MaN Посмотреть сообщение
Скажите, что я делаю не так
Мы не знаем что Вы делаете не так, мы вообще не знаем что Вы делаете. Кода то нет.
0
1 / 1 / 2
Регистрация: 20.10.2011
Сообщений: 154
25.03.2016, 08:01  [ТС]
Лучший ответ Сообщение было отмечено pav1uxa как решение

Решение

Прошу прощения
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
static function getBasketID(){  
            loadClass('User');
            $DB = SQL::get_instance();
            if($ID = User::getUserID()){    //есть USER_ID
                p($ID);
                $basket = $DB->query(
                        'select ID from ' .DB_PREFIX. 'basket_users ' . 
                        'WHERE USER_ID = #ID# LIMIT 1',
                        array('ID' => $ID)
                    );
                if(empty($basketID = $basket->fetch())){    //корзина есть - получаем
                    $basketID = self::createNewBasketUser();    //корзины нет - создаем новую
                }
                $hash = md5($basketID);
                $DB->packUpdate('basket_users', array('COOKIES' => $hash), 'ID = ' . $basketID);    //пишем для ID корзины хэш в базу
                setcookie('BASKET_ID', $hash, time()+60*60*24*365*10); //устанавливаем cookies на 10 лет
                return $basketID['ID'];
            } else {    //нет USER_ID
                if(!empty($_COOKIE['BASKET_ID'])){  //cookies есть
                    $hash = $_COOKIE['BASKET_ID'];
                    p($hash); //получаем хэш
                    $basket = $DB->query(           //получаем id корзины по хэшу
                        'select ID from ' .DB_PREFIX. 'basket_users ' . 
                        'WHERE COOKIES = #hash# LIMIT 1',
                        array('hash' => $hash)
                    );
                    if(!empty($tmp = $basket->fetch())){
                        p($tmp['ID']) //если по хэшу нашли корзину
                        return $tmp['ID'];  //возвращаем корзину
                    }
                }   
                                        //cookies нет, по ID корзины нет, либо не нашли корзину по хэшу
                $basketID = self::createNewBasketUser();    //создаем новую корзину
                $hash = md5($basketID);
                $DB->packUpdate('basket_users', array('COOKIES' => $hash), 'WHERE ID = ' . $basketID);  //пишем для ID корзины хэш в базу
                setcookie('BASKET_ID', $hash, time()+60*60*24*365*10); //устанавливаем cookies на 10 лет
                p()
                return $basketID;
            }
        }
Добавлено через 45 минут
на функцию p() не обращайте внимания, это просто вывод значений в лог, отладочная функция

Добавлено через 8 минут
Проблему решил - необходимо в setcookie прописать дополнительный параметр '/' - чтобы область видимости была глобальной
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
25.03.2016, 08:01
Помогаю со студенческими работами здесь

Php and cookie
Добрый вечер! Стоит авторизация с куками if (isset($_COOKIE) and isset($_COOKIE)) { $query = mysqli_query($link,...

Работа с Cookie в PHP
Начнем с того, что у меня ни разу не получалось грамотно поставить cookie К примеру самое простое setcookie ("TestCookie",...

Работа с COOKIE в php.
1.Можно ли ставить 2 куки на 1 странице 2.Если поставил куки в r/h.php будет ли он виден а r/t.php 3.Почему if(!isset($COOKIE)) {h++;}...

Сессии и cookie в php
Создать cookie с названием users и прекратить действие данного cookie в полночь 01 января 2020года. Помогите пожалуйста)

Что можно записывать в COOKIE на PHP?
Такой вопрос, что можно кроме логина или пароля (в зашифрованном виде) записывать в куки. Я сделал регистрацию и авторизацию. При...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru