Мои куки не останутся (PHP) - PullRequest
1 голос
/ 04 мая 2010

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

setcookie('userID', $userID, time()+86400); // (edited after replies)

$ userID имеет значение.
Затем я печатаю переменную $ _COOKIE, и она говорит массив (['base_usid'] => 1); Так что это хорошо, но когда я щелкаю домашнюю страницу и печатаю переменную $ _COOKIE, там появляется NULL.
Кто-нибудь видит проблему?

Ответы [ 6 ]

3 голосов
/ 05 мая 2010

Ага, я узнал что-то новое о файлах cookie :) У них есть путь, и они доступны только по этому пути (каталог, в котором они были созданы). Я создал куки в / user / login, а затем попытался прочитать их в / news / index. Не сработает.
Раньше я создавал веб-сайты со всеми файлами в одной папке (я знаю, что это плохо), поэтому я не знал об этом свойстве cookie. Извините, я должен был прочитать руководство лучше ...
Спасибо за вашу помощь!

P.s .: Ввод print_r($_COOOKIE); не ускорит отладку. (

3 голосов
/ 04 мая 2010

В файлах cookie должно быть указано время, в течение которого они должны оставаться ... Проверьте http://php.net/manual/en/function.setcookie.php

Другими словами, измените его на: setcookie ('userID', $ userID, time () + 86400); например, на один день.

2 голосов
/ 04 мая 2010

Попробуйте вместо этого

setcookie("userID", $userID, time()+3600);

Это будет длиться час.Увеличьте число, чтобы оно длилось дольше.

Чтобы сбросить / удалить его, измените плюс + на минус -

:)

2 голосов
/ 04 мая 2010

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

0 голосов
/ 04 мая 2010

Хотите узнать, как создавать системы CMS и менеджеры входа в систему, или вы хотите создать приложение ...? Ненавижу это делать, но мой ответ таков: не создавайте свою собственную систему входа. Вместо этого, возьмите некоторые фреймворки, такие как CodeIgniter, Kohana, или даже Drupal или Joomla. Если вы создаете систему входа в систему в качестве обучающего опыта, чтобы понять, как работают файлы cookie и т. Д., Тогда все в порядке ... продолжайте .. если вы не планируете размещать их на каком-либо производственном сайте. В противном случае возьмите хорошо протестированный фреймворк и используйте его.

0 голосов
/ 04 мая 2010

Если после установки срока действия он все еще не работает (и вы проверили правильность часов на сервере и клиенте), то проверяли ли вы, что куки отправляются? Похоже, проблема с «заголовки уже отправлены». Что также может означать, что у вас есть проблема с сообщениями об ошибках / ведением журнала.

С

...