CodeIgniter Cookie не будет установлен, но сессия работает? - PullRequest
1 голос
/ 20 ноября 2011

Я работаю с CodeIgniter, чтобы настроить некоторые функции входа пользователя на мой сайт с помощью Twitter и Facebook, эта часть работает, и сессия работает нормально.

Когда я пытаюсь установить cookie, он не работает

//Setup a guid
$guid = uniqid();

//Setup a random cookie and point it to db user
$cookie = array(
  'name'   => 'TheCookieName',
  'value'  => $guid,
  'expire' => 100,
  'domain' => BASE_URL,
  'secure' => TRUE
);

    set_cookie($cookie);

  var_dump(get_cookie('TheCookieName')); // bool(false)

Мой файл автозагрузки достаточно прост

$autoload['helper'] = array('paging_helper','url','cookie');

Мне явно не хватает чего-то тривиального? Любая подсказка?

Спасибо

Ответы [ 3 ]

2 голосов
/ 20 ноября 2011

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

Попробуйте сделать это так:

//Setup a guid
$guid = uniqid();

//Setup a random cookie and point it to db user
$cookie = array(
  'name'   => 'TheCookieName',
  'value'  => $guid,
  'expire' => 86500, // have a high cookie time till you make sure you actually set the cookie
  'domain' => '.example.org', // the first . to make sure subdomains isn't a problem
  'path' => '/',
  'secure' => TRUE
);

    set_cookie($cookie);

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

2 голосов
/ 14 декабря 2013

убедитесь, что вы установили secure => TRUE только для https

1 голос
/ 20 ноября 2011

Вы не можете установить и получить доступ к cookie в одном и том же экземпляре. Вы должны либо перенаправить после установки куки или обновить. По этой причине var_dumping get_cookie всегда возвращает false. Вы также должны установить остальные аргументы. Смотрите setcookie

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