2013-09-18 3 views
-1

Я только что переключился с сервера Wamp на фактическую установку apache, php и mysql и установил их вручную. Я нахожу, что когда я вызываю $ _COOKIE, он выдает неопределенное индексное сообщение. Файл cookie действителен и существует, но он не будет распознавать cookie.

Cookie устанавливается на знаке в сценарии

< ?php 

if (username/password to match dataserecord) 
{ 
setcookie('error', 'invalid login'); //cookie gets set 
header('Location: signin.php'); //page is redirected correctly 
?> 

Вот эхо вызов, чтобы отобразить куки/ошибку на странице входа

< ?php echo $_COOKIE['error'] ?> //undefined index 

Я бы нужно отрегулировать настройки в PHP или apache?

+9

Дон Для этого не используйте файлы cookie. Используйте '$ _SESSION'. –

+1

Вы проверили, что cookie отправляется в браузер? Вы проверили, что cookie отправляется обратно на PHP? Вы сбросили весь массив '$ _COOKIE', чтобы узнать, какие файлы cookie фактически обнаружены? – Sven

+0

Вы используете файлы cookie для своего логина, если это действительно так? Кроме того, убедитесь, что вы используете 'die()' или 'exit()' после 'header()'! – James

ответ

3

я полностью согласен с тем, что сказал Kolink об использовании сессий для этой цели, но если вы настаиваете на собирается маршрут печенья, я считаю, что печенье Isnt читается из-за отсутствия установленного печенья пути, например

setcookie('error', 'invalid login', '/'); //cookie gets set 
+0

Спасибо, я просто попробовал, и это сработало. Я не был уверен, что использование файлов cookie для сообщений об ошибках уменьшит нагрузку на сервер. – Ralph

+0

Не думаю, что в этом отношении слишком много различий, только реальная разница - это продолжительность жизни. сеанс завершится, когда браузер будет закрыт, но cookie может иметь определенное время истечения срока действия. ваш файл cookie, указанный выше, истекает, когда браузер закрыт из-за того, что не передан параметр expiry, который подходит для этой цели cookie. но, например, помните, что cookie для сценария входа в систему, потребуется продлить срок службы, например. 'setcookie ('remember_me', 'login_detail_here', '/', time() + 86400);' который истекает через 24 часа –

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