не могу установить cookie? - PullRequest
1 голос
/ 10 марта 2011

Я использую

public function setCookie() {
  $value = $this->info('id').':'.$this->info('salt');
  //$value == '1:0842d579c6c9f08401d7204240d06930'
  $expire = (time()+((3600*24)*365));
  return setcookie("remember", $value, $expire);
}

и возвращает значение true,

, но когда я печатаю $_COOKIE на следующей странице, единственным набором cookie является идентификатор php sess.

Почему не настраивается?

Примечания Страница, которая устанавливает cookie, запрашивается через ajax.
Текущая страница / страница ajax'd / следующая страница все находятся на одном доменном имени
Ничего не отправляется до того, как cookie установлен

1 Ответ

2 голосов
/ 10 марта 2011

bool setcookie (строка $ name [, строка $ value [, int $ expire = 0 [, строка $ path [, строка $ domain [, bool $ secure = false [, bool $ httponly = ложь]]]]]])

Из справочной страницы setcookie.

Попробуйте также установить значения домена и пути и посмотрите, работает ли это, IE:

setcookie("remember", $value, $expire, '.domain.com', '/');

Редактировать

Если вы работаете с localhost, здесь есть дополнительная информация:

Источник: http://www.aeonity.com/frost/php-setcookie-localhost-apache

setcookie("username", "George", false, "/", false);

Вы бы использовали эту версию. Я не совсем уверен, почему это требуется для работы localhost. Лучшим способом было бы настроить виртуальный хост в apache, а затем изменить файл hosts, добавив в него значение, установленное для ServerName vhost. Это избавит вас от необходимости изменять свою функцию setcookie, чтобы заставить ее работать, поэтому, когда вы переходите к постановке / производству, вам не нужно беспокоиться о взломах.

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