2013-04-16 2 views
1

Я пытаюсь установить сеанс и куки для того, когда пользователь входит в систему.Установка двух сеансов, сеанс и печенье

Когда пользователь посещает страницу входа, сеанс установлен и запущен, с session_start() который работает достаточно хорошо, но когда теперь пользователь заполняет форму авторизации (имя пользователя и пароль), а собственно проверка делается для правильных деталей входа, я установил печенье:

$one_week = 60*60*24*7; 
setcookie("cookiejarcookie", "cookiejar_value", time()+$one_week, '/', 'localhost'); 

Это не работает, печенье не устанавливается. Я пробовал называть его сверху скрипта, но он не работает.

Как установить cookie после установки сеанса?

+0

попробуйте использовать его вне домена или пути – 2013-04-16 01:16:34

+1

Вы не можете установить файлы cookie для localhost, но если вы добавите файл my.fake.local в свой файл hosts (/ etc/hosts или c: \ Windows \ System32 \ drivers \ etc \ hosts), которые должны работать. – David

ответ

1

Попытка установить cookie на localhost не работает в большинстве браузеров. Вам необходимо установить значение домена в значение null, пустую строку или false. Большинство рекомендаций, которые я видел, - установить для значения домена значение false. С учетом сказанного я никогда не понимал, как писать код, так как это не то, что вы собираетесь развернуть в производственной среде.

См. Рекомендацию @David. Я лично использую виртуализацию для запуска серверной среды и карты поддельных DNS, используя файл hosts.

Один совет, который я могу предложить, заключается в том, что вы должны открыть свой редактор (я использую блокнот ++ или текстовую панель) в качестве администратора в самых последних версиях окон, которые имеют ОАЭ, чтобы редактировать файл соответствующих хостов.

+0

Виртуализация - лучший способ пойти, использовать бродягу намного больше, и его смешно, как быстро получить очищающую среду cleanslate. – David

1

От моего комментария

Вы не можете установить куки для локального хоста, но если добавить my.fake.local в файле хостов (/ и т.д./хосты или C: \ Windows \ System32 \ Drivers \ Etc \ хостов), которые должны работать.

добавить

127.0.0.1 my.fake.local 

в соответствующем файле хостов.

+0

Я попробовал метод дракона, установив cookie без домена, и он сработал, setcookie («cookiejarcookie», «cookiejar_value», time() + $ one_week,); но когда я попытался сделать это с использованием описания Дэвида, он не работает, установите имя пользовательского хоста в моем файле хоста в каталоге system32, он не работает, есть ли что-то, что я здесь не понимаю? –

+0

@SamoAdx Да, я идиот. Это должно быть 127.0.0.1 my.fake.local. Я заставил их переключаться :( – David

+0

Спасибо alot david, он сработал, теперь я получаю логику, что он делает, он отображает 127.0.0.1 в my.fake.local, так же, как 127.0.0.1 отображает на localhost, поэтому, когда ppl типы в localhost в браузере, он разрешает 127.0.0.1. Спасибо. –

Смежные вопросы