Дубликаты печенья - PullRequest
       1

Дубликаты печенья

1 голос
/ 06 октября 2011

Я устанавливаю два куки в PHP в моем корневом каталоге

   setcookie ("st", "$todays_system_date"  );
   setcookie ("en", "$tomorrow" );

Моя проблема в том, что мне нужно установить их снова в сценарии, который находится в более глубокой папке, например: / diary / Когда я их установил, а затем попытался прочитать их или посмотреть на набор файлов cookie, я обнаружил, что у меня есть 2x en и 2x st cookie.

Мой вопрос: как я могу сослаться только на один набор файлов cookie? и читать их?

заранее спасибо

Ответы [ 2 ]

5 голосов
/ 06 октября 2011

Cookies - это пары ключ / значение - они будут иметь только одно значение в любой заданной области.

Однако:

  • Возможно иметь более одного cookie стот же ключ и другие значения для одного и того же домена (хотя он будет иметь только одно действующее значение в любой заданной области).

Например, если вы установите cookie st в корне (/) со значением 1, а в /diary/ со значением 2 два куки будут существовать сами по себе.Когда вы находитесь в каталоге / (или в любом подкаталоге /, который не является /diary/ или подкаталоге /diary/), значение будет 1.Если вы находитесь в /diary/ или подкаталоге /diary/, если будет 2:

Directory         Cookie Value
/                      1
/somedir/              1
/diary/                2
/diary/subdir          2
/somedir/diary/        1


  • Можно установить тот же cookieдважды в одной и той же области действия, но будет действовать только более позднее значение - более позднее значение переопределяет предыдущее значение.

Например:

setcookie('st',1); // st is now 1 for the current path
setcookie('st',2); // st is now 2 for the current path

Если вы посмотрите на HTTPВ ответном сообщении, отправленном PHP, вы увидите 2 Set-Cookie: заголовка для ключа st.Однако при следующем запросе в области действия cookie на сервер будет отправлено только более позднее значение 2.

1 голос
/ 06 октября 2011

Печенье может быть немного странным - оно должно работать, если вы установите больше параметров ... попробуйте:

setcookie('st', "{$todays_system_date}", 0, '/', '.yourdomain.ext');
setcookie('en', "{$tomorrow}", 0, '/', '.yourdomain.ext');

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

n.b. если вы используете '.yourdomain.ext' (обратите внимание на. перед вашим доменом), файл cookie будет доступен через все субдомены на вашем сайте, поэтому www.yourdomain.ext или badger.yourdomain.ext и т. д.

Для получения дополнительной информации см .: http://uk3.php.net/manual/en/function.setcookie.php

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...