Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.81/21: Рейтинг темы: голосов - 21, средняя оценка - 4.81
0 / 0 / 0
Регистрация: 14.01.2013
Сообщений: 73
1

Удаление cookie

28.04.2017, 23:39. Показов 4356. Ответов 17
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день. Подскажите пожалуйста почему unset действует только в начале кода. Если написать в конце, счетчик будет продолжать работать. И почему кстати при использовании unset, cookie остается а не удаляется.

PHP
1
2
3
4
5
6
//unset($_COOKIE["count"]);
    $count = (isset($_COOKIE["count"])) ? $_COOKIE["count"] : 0;
    $count++;
    setcookie("count", $count);
    echo $count;
    unset($_COOKIE["count"]);
Заранее спасибо за ликбез!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.04.2017, 23:39
Ответы с готовыми решениями:

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

cookie
1-ая Страница: Форма загрузки изображений на сайт. Затем когда пользователь загрузил изображение,...

Cookie
Всем привет) С помощью кук передаю код на новую вкладку и преобразую в pdf. Все отлично...

Cookie
Сломал всю голову. Не понимаю почему не задаются cookie. Вот код: <html> <head> <meta...

17
133 / 133 / 48
Регистрация: 26.04.2013
Сообщений: 1,356
29.04.2017, 00:36 2
Vdekameron, Потому что ты выводишь на экран до unset не логично?
0
0 / 0 / 0
Регистрация: 14.01.2013
Сообщений: 73
29.04.2017, 08:12  [ТС] 3
Цитата Сообщение от maruo Посмотреть сообщение
Потому что ты выводишь на экран до unset не логично?
Логично! но после этого я уже удаляю cookie. Следующая проверка $count = (isset($_COOKIE["count"])) ? $_COOKIE["count"] : 0; должна по идее вернуть ноль.
0
133 / 133 / 48
Регистрация: 26.04.2013
Сообщений: 1,356
29.04.2017, 10:42 4
Vdekameron,
Цитата Сообщение от Vdekameron Посмотреть сообщение
unset($_COOKIE["count"]);
Этим нельзя куку удалить из браузера. Этим можно удалить куку только из массива $_COOKIE

Поэтому если нужно удалить нужно сделать так

PHP
1
setcookie('count','',time() - 3600);
0
0 / 0 / 0
Регистрация: 14.01.2013
Сообщений: 73
29.04.2017, 12:00  [ТС] 5
Цитата Сообщение от maruo Посмотреть сообщение
Этим нельзя куку удалить из браузера. Этим можно удалить куку только из массива $_COOKIE
Что в лоб, что по лбу. Даже если само cookie не удаляется а удаляется только из массива, то при следующем запросе
PHP
1
$count = (isset($_COOKIE["count"])) ? $_COOKIE["count"] : 0;
переменная $count должна получить ноль, а получает сохраненное значение.

Кстати вроде setcookie("count", "") тоже удалит cookie
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
29.04.2017, 12:05 6
Цитата Сообщение от Vdekameron Посмотреть сообщение
переменная $count должна получить ноль
нет. какое значение придет в запросе в заголовке cookie, такое и будет
Цитата Сообщение от Vdekameron Посмотреть сообщение
Кстати вроде setcookie("count", "") тоже удалит cookie
Можно не гадать, а обратиться к документации http://php.net/manual/ru/function.setcookie.php
0
0 / 0 / 0
Регистрация: 14.01.2013
Сообщений: 73
29.04.2017, 12:36  [ТС] 7
Цитата Сообщение от Jewbacabra Посмотреть сообщение
нет. какое значение придет в запросе в заголовке cookie, такое и будет
Так я же удаляю из массива count....a потом запрашиваю его....откуда оно там берется???
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
29.04.2017, 12:39 8
Цитата Сообщение от Vdekameron Посмотреть сообщение
Так я же удаляю из массива count
Удаление из суперглобального массива $_COOKIE !== удалению cookie. Есть 1 способ удалить куку - дождаться истечения времени истечения. Этот процесс можно ускорить, изменив это самое время.
0
Эксперт по компьютерным сетямЭксперт NIX
13016 / 7407 / 801
Регистрация: 09.09.2009
Сообщений: 28,986
29.04.2017, 12:41 9
Яваскрмптом прописать куке пустое значение
0
97 / 47 / 17
Регистрация: 25.04.2017
Сообщений: 471
29.04.2017, 12:50 10
unset удалит кукис только в текущем сценарии, из браузера кукис удаляется путём состаривания

setcookie('count', '', time()-3600);

указывает, что кукис умер уже как бы час назад
0
Фрилансер
Эксперт JSЭксперт HTML/CSSЭксперт PHP
1846 / 1342 / 599
Регистрация: 12.01.2011
Сообщений: 5,432
29.04.2017, 12:58 11
Цитата Сообщение от Dmitry Посмотреть сообщение
Яваскрмптом прописать куке пустое значение
Можно не только яваскриптом , но и с помощью php куке присвоить пустое значение и тем самым мы избавимся от нее.
Цитата Сообщение от Вилы Выкидные Посмотреть сообщение
setcookie('count', '', time()-3600);
PHP
1
setcookie('count', '');
Этого будет достаточно.
1
97 / 47 / 17
Регистрация: 25.04.2017
Сообщений: 471
29.04.2017, 13:04 12
Цитата Сообщение от Azdeman Посмотреть сообщение
setcookie('count', '', time()-3600);
PHPВыделить код
1
setcookie('count', '');
ну может кто-то не поймёт суть состаривания, поэтому пользуемся мануалом с офсайта
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
29.04.2017, 13:04 13
Цитата Сообщение от Azdeman Посмотреть сообщение
Этого будет достаточно.
нет
0
Эксперт по компьютерным сетямЭксперт NIX
13016 / 7407 / 801
Регистрация: 09.09.2009
Сообщений: 28,986
29.04.2017, 13:09 14
Судя по коду ТС пытается удалять Куку уже после вывода чего то в браузер. И если я правильно помню, РНР так сделать не сможет. А яваскрипт - сможет
0
133 / 133 / 48
Регистрация: 26.04.2013
Сообщений: 1,356
29.04.2017, 13:09 15
Jewbacabra, Ну для его случая да не хватит, нужно хотя бы NULL передать, что бы его конструкция работала
0
Фрилансер
Эксперт JSЭксперт HTML/CSSЭксперт PHP
1846 / 1342 / 599
Регистрация: 12.01.2011
Сообщений: 5,432
29.04.2017, 13:15 16
Цитата Сообщение от Dmitry Посмотреть сообщение
И если я правильно помню, РНР так сделать не сможет.
Может. Если честно я мало когда использую Cookie , в основном сессии, когда я начинал проходить тему cookie , то точно помню что там было можно. Ну вот вбил сейчас в google,
http://www.php.su/phphttp/?cookies
Поиск -> Удаление Cookies
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
29.04.2017, 13:19 17
Цитата Сообщение от maruo Посмотреть сообщение
нужно хотя бы NULL передать
Ни в коем случае. Используя strict_types=1 получим ошибку.

Но так Azdeman, прав, действительно setcookie('count', '') достаточно, вот какой заголовок будет сформирован
Код
Set-Cookie: count=deleted; expires=Thu, 01-Jan-1970 00:00:01 GMT; Max-Age=0
2
Эксперт PHP
3106 / 2591 / 1219
Регистрация: 14.05.2014
Сообщений: 7,236
Записей в блоге: 1
29.04.2017, 23:34 18
Цитата Сообщение от Jewbacabra Посмотреть сообщение
Цитата Сообщение от Azdeman Посмотреть сообщение
Этого будет достаточно.
нет
Нужно еще и страницу перезагрузить, чтобы изменения можно увидеть было.
0
29.04.2017, 23:34
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.04.2017, 23:34
Помогаю со студенческими работами здесь

Cookie
Не могу решить задание чисто по cookie. Нужно создать три ссылки - "Крупный шрифт", "средний...

Cookie
Доброго времени суток, я новичок в php и до конца не понимаю, как проверить наличие cookie для...

cookie
не ставятся cookiesetcookie ("name", $name, time()+3600, "/", ".mysite.ru", 0); подскажите что не...

Cookie
Привет всем. Столкнулся я с такой проблемой мне нужно прикрепить к данным форм "(Логин и пароль)"...


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

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru