PHP: установка куки - старые значения почему-то не заменяются - PullRequest
0 голосов
/ 20 февраля 2011

У меня есть скрипт, в котором я установил 2 куки:

$month = time() + 60 * 60 * 24 * 30;
setcookie('id', $id, $month, '/');
setcookie('auth', $auth, $month, '/');
header('Content-Type: text/html; charset=utf-8');
print('<html><body>...etc....');

Это работает хорошо, но: у некоторых пользователей есть несколько идентификаторов, в зависимости от того, с какой страницы (социальной сети) они получают доступ к моему сценарию через iframe.

Пользователь, имеющий несколько идентификаторов, не является проблемой. Но моя проблема в том, что когда я попрошу этого человека посмотреть на его куки, он сообщит, что есть несколько куки с именами id и auth . И я тоже могу воспроизвести это сам.

И я действительно ожидал, что всегда будет только 1 id и 1 auth cookie.

Что я могу сделать здесь?

Не вызывает ли setcookie ('id', ...) с новым значением замену старого значения?

Спасибо! Alex

1 Ответ

1 голос
/ 20 февраля 2011

Файлы cookie основаны на концепции схемы KV (ключ = значение) и ключе действуют как уникальные идентификаторы.

Три основных фактора setcookie:

  • CREATE
    • Создание файла cookie с помощью setcookie("id","value")
  • READ
    • Чтение файла cookie с использованием $_COOKIE["id"]
  • ОБНОВЛЕНИЕ
    • Обновить файл cookie с помощью setcookie("id","new value")
  • УДАЛИТЬ
    • Удалить, установив срок действия в прошлом setcookie ("TestCookie", "", time() - 10);

так что да, вы правильно ответили на свой вопрос, вам следует взглянуть на другие факторы, которые могут сдерживать состояния файлов cookie.

...