У меня проблема с записью куки в хроме. В ФФ работает отлично.
setcookie() в обоих браузерах возвращает true. В хроме при распечатке показывает пустой массив как будто юзер не принял куки.
Что интересно если тот же код прогнать с localhost всё работает а с хостинга не хочет. Пробовала задавать в setcookie() path , domain , secure , httponly - ничего не помогает.
код для проверки :
$kuk = "abc";
if(setcookie('tatti', $kuk, time()+3600))
{
echo "Good\n";
}
else
{
echo "Bad\n";
}
print_r($_COOKIE);
Подскажите пожалуйста.
Спустя 1 час, 55 минут, 35 секунд (21.05.2011 - 20:39) alex12060 написал(а):
tatti
Проверь, можно ли их включать.
Проверь, можно ли их включать.
Спустя 16 часов, 18 минут, 28 секунд (22.05.2011 - 12:57) killer8080 написал(а):
Цитата (tatti @ 21.05.2011 - 18:43) |
setcookie() в обоих браузерах возвращает true. |
А причём здесь браузер? setcookie() - это серверная сторона
Спустя 6 часов, 58 минут, 9 секунд (22.05.2011 - 19:55) tatti написал(а):
alex12060
"ИХ" - в смысле куки?
Можно включать и выключать. Ещё можно включать и выключать third party cookies
killer8080
Спасибо за поправку
поиски аналога ФФ about:config привели к about:stats выдающих пустую страницу...
есть идеи?
"ИХ" - в смысле куки?
Можно включать и выключать. Ещё можно включать и выключать third party cookies
killer8080
Спасибо за поправку
поиски аналога ФФ about:config привели к about:stats выдающих пустую страницу...
есть идеи?
Спустя 23 минуты, 28 секунд (22.05.2011 - 20:19) killer8080 написал(а):
tatti
а если увеличить expire, сделать больше 1 часа, например сутки time() + 3600 * 24?
Если не правильно выставлена часовая зона или время, могут быть подобные глюки.
а если увеличить expire, сделать больше 1 часа, например сутки time() + 3600 * 24?
Если не правильно выставлена часовая зона или время, могут быть подобные глюки.
Спустя 9 минут, 57 секунд (22.05.2011 - 20:29) neadekvat написал(а):
1. Ставить лучше как минимум с 4-мя параметрами:
setcookie('tatti', $kuk, time()+3600, '/');
2. Массив _COOKIE станет доступен только при следующей загрузке скрипта.
Сделай так:
И обнови страничку пару раз.
setcookie('tatti', $kuk, time()+3600, '/');
2. Массив _COOKIE станет доступен только при следующей загрузке скрипта.
Сделай так:
if ( ! isset($_COOKIE['tatti']))
setcookie('tatti', 'val', time() + 3600, '/');
else
echo $_COOKIE['tatti'];
И обнови страничку пару раз.
Спустя 1 минута, 17 секунд (22.05.2011 - 20:30) tatti написал(а):
killer8080
точно
благодарю за помощь + в репу пока не могу заслать
не но интересно почему в хроме не работало а в ФФ аж бегом
точно
благодарю за помощь + в репу пока не могу заслать
не но интересно почему в хроме не работало а в ФФ аж бегом
Спустя 1 час, 7 минут, 57 секунд (22.05.2011 - 21:38) killer8080 написал(а):
Цитата (tatti @ 22.05.2011 - 20:30) |
не но интересно почему в хроме не работало а в ФФ аж бегом |
а насколько велико расхождение? Можно сравнить так:
<?php
echo time();
?>
<br />
<script type="text/javascript">
document.write(new Date().getTime());
</script>
возможно между Expire и системным временем разница в плюс на несколько секунд. ФФ может такой куки пинять, а Хром нет. Но это лишь предположение :)
PS в php метка времени в секундах, а в JS в миллисекундах.
Кстати - это главная причина, почему не стоит делать время жизни кук 1 час. Юзеры часто неправилно выставляют часовой пояс, в системных часах. Сам такое ни раз наблюдал, когда часовой пояс стоит по Москве, а часы идут по Киеву. Поэтому лучше выставлять expire побольше, чтоб не было возмущений от пользователей, которые не могут залогинится.