2013-09-12 3 views
1

У меня есть веб-страница с формой входа в систему, в зависимости от того, установлен ли файл cookie. Если пользователь входит в систему, данные отправляются в сценарий входа в систему, который устанавливает cookie и возвращает пользователя на исходную страницу. Проблема по какой-то причине, несмотря на то, что cookie установлен правильно (или удален, в случае выхода из системы), страница продолжает показывать старое содержимое. Чтобы страница действительно отображала правильную информацию, требуется обновление. Что происходит?PHP login требует обновления

Мой Логин сценарий эффективно это делает:

setcookie("my_cookie",$userID, time()+3600*24*356, "/"); 

и мои страницы проверяет это:

if (!isset($_COOKIE["my_cookie"])) 

в самом верху страницы.

Спасибо за помощь.

+2

Надеюсь, вы не полагаетесь на идентификатор пользователя, чтобы определить, что пользователь вошел в систему. Используйте для этого сеансы. –

+0

Вставьте свой фактический код, а не часть строки извлечения. Btw –

+1

Вы убедитесь, что перенаправление действительно обновляет страницу, а не просто говорит браузеру снова загружать его (что в этом случае может загружаться из кэша). Это было то же самое со мной при настройке основного входа ... Проверьте, не возникает ли проблема, когда в * incognito * – Nico

ответ

0

Используйте сеанс для этого. Сессия сохраняется без обновления.

0

Когда вы устанавливаете cookie, сервер посылает заголовок в браузер для установки cookie (это причина, по которой вы не можете установить cookie после отправки каких-либо данных - заголовок должен быть первым). Когда браузер отправляет запрос на страницу, отправляет все файлы cookie в заголовок запроса.