Javascript куки не сгенерированы - PullRequest
       2

Javascript куки не сгенерированы

0 голосов
/ 07 сентября 2011

Я пытаюсь реализовать это: http://adaptive -images.com / на веб-сайте.Он будет полагаться на JS-Cookies, которые получат разрешение экрана, поэтому PHP-скрипт, который адаптирует размеры изображения, знает, какое разрешение предоставить.К сожалению, он как-то не может установить cookie (и возвращается к разрешению 480 ...), и я понятия не имею, почему.Это просто:

<script type="text/javascript">
document.cookie='resolution='+Math.max(screen.width,screen.height)+'; expires=; path=/';
</script>

прямо в заголовке документа.Тем не менее, кажется, что куки никогда не устанавливаются, я только увижу (они должны появиться в Ресурсной части Chrome DevTools, верно?) Созданные GoogleAnalytics (все же, это не проблема, так как удаление GA делаетбез разницы).

Раньше я никогда не использовал файлы cookie JS, но из того, что я могу прочитать в Интернете, синтаксис, кажется, прекрасно, а также я не получаю никаких сообщений об ошибках в консоли или в другом месте,кажется, что оно просто игнорирует действие по настройке cookie.

Короче говоря: я понятия не имею, что здесь происходит?

Спасибо!

РЕДАКТИРОВАТЬ: Может быть, это проблема PHP, поэтому я тоже добавлю эту часть.Происходит следующее:

Сначала:

$resolutions   = array(1920,1382, 992, 768, 480);

Затем:

  if (is_numeric($_COOKIE['resolution'])) {
    $client_width = (int) $_COOKIE["resolution"]; 

    rsort($resolutions); 
    $resolution = $resolutions[0]; 

    foreach ($resolutions as $break_point) { 
      if ($client_width <= $break_point) {
        $resolution = $break_point;
      }
    }
  } 

Тем не менее, скрипт всегда вернет разрешение 480, даже если мой экранэто 1920?Поскольку я получаю код, он должен возвращать 1920, поэтому я думаю, что он использует запасной вариант в случае, если $_COOKIE['resolution'] не установлен, что будет возвращаться к 480.

1 Ответ

2 голосов
/ 07 сентября 2011

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

Кроме этого, ваше печенье, похоже, работает на меня. Когда я использую этот код в jsFiddle и просматриваю файлы cookie в отладчике Chrome, я вижу строку cookie с элементом для разрешения и помечается как файл cookie сеанса, а не постоянный файл cookie.

Возможно, вы можете описать, как вы читаете куки?

Мне приходит в голову, что вы устанавливаете cookie на клиенте, поэтому сервер не увидит cookie, пока не будет запрошена СЛЕДУЮЩАЯ страница для этого домена. Сервер не увидит его на первой странице. Может ли это быть вашей проблемой?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...