Использование куки с php - PullRequest
1 голос
/ 30 июля 2010

Я просто пытаюсь установить и использовать cookie, но я не могу что-либо сохранить.

При входе в систему я использую:

setcookie("username", $user);

Но, когда я использую Firefox и плагин для веб-разработчиков, Cookies -> Просмотр информации о cookie. Файл cookie с именем пользователя отсутствует.

Кроме того, когда я пытаюсь получить доступ к значению на следующей странице, используя

$_COOKIE["username"]

Возвращается ноль / пусто

var_dump(setcookie("username", $user)); РЕЗУЛЬТАТ: bool(true)

и

var_dump($_COOKIE) РЕЗУЛЬТАТ: определенный cookie делаетне существует (другие есть)

Я провел еще какое-то тестирование ...

Файл cookie существует после входа в систему (первая страница), но исчезает, когда я перехожу на другую (2-я страница) ипотеряно навсегда ...

Есть ли заголовки, которые должны присутствовать или отсутствовать?

Ответы [ 5 ]

1 голос
/ 30 июля 2010

Убедитесь, что вы правильно задаете параметр домена, если URL меняется после перехода на другую страницу после входа в систему. Подробнее о параметре домена вы можете прочитать на http://php.net/manual/en/function.setcookie.php

1 голос
/ 30 июля 2010

http://php.net/manual/en/function.setcookie.php

Попробуйте установить параметр $ expire в какой-то момент в будущем.Я считаю, что по умолчанию это 0, что в далеком прошлом.

0 голосов
/ 30 июля 2010

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

Путь входа был / admin /, а затем я перенаправил назадв корень ...

Спасибо всем за помощь и отзывы!

0 голосов
/ 30 июля 2010

Используйте var_dump () для setcookie (..), чтобы увидеть, что возвращается.Также можно сделать то же самое с $ _COOKIE, чтобы увидеть, установлен ли ключ.

0 голосов
/ 30 июля 2010

Срок действия файла cookie, вероятно, истек, поскольку $expire по умолчанию составляет 0 секунд с начала эпохи Unix.( документы )

Попробуйте

setcookie("username", $user, time() + 1200);

, срок действия которого истекает через 20 минут после установки (в зависимости от времени клиента).

...