Php 未生成Javascript cookies

Php 未生成Javascript cookies,php,javascript,cookies,Php,Javascript,Cookies,我试图实现这一点:进入一个网站。 它将依赖JS Cookie来获得屏幕的分辨率,因此调整图像大小的PHP脚本知道要提供什么分辨率。 不幸的是,它以某种方式无法设置cookie(并返回到480分辨率…),我不知道为什么。它所做的只是: <script type="text/javascript"> document.cookie='resolution='+Math.max(screen.width,screen.height)+'; expires=; path=/'; </s

我试图实现这一点:进入一个网站。 它将依赖JS Cookie来获得屏幕的分辨率,因此调整图像大小的PHP脚本知道要提供什么分辨率。 不幸的是,它以某种方式无法设置cookie(并返回到480分辨率…),我不知道为什么。它所做的只是:

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

if(是数字($\u COOKIE['resolution'])){
$client_width=(int)$_COOKIE[“分辨率”];
rsort(决议);
$resolution=$resolutions[0];
foreach($break_point){

如果($client_width未设置过期时间,则使cookie成为会话cookie,因此它仅在浏览器会话的生命周期内持续(不会写入磁盘)

除此之外,您的cookie似乎对我很有用。当我在JSFIDLE中使用该代码并在Chrome调试器中查看cookie时,我看到cookie字符串中有一个用于解析的项,并且它被标记为会话cookie,而不是永久cookie

也许你可以描述一下你是如何阅读饼干的


我突然想到,您正在客户端上设置cookie,以便服务器在该域上请求的下一个页面之前不会看到cookie。服务器在第一个页面上不会看到cookie。这可能是您的问题吗?

谢谢,我不知道调试程序中没有出现会话cookie!我将PHP添加到了问题中。会话cookie确实存在在Chrome调试器中为我添加pear。我不懂PHP,所以我不能对你的PHP发表评论。我在回答的末尾添加了另一种可能性。我也在考虑这一点,但代码中有一条评论说:只需要解决一些浏览器在第一次访问网站时无法快速设置cookie的错误。Su因此,ch浏览器在第一次访问时就好像没有设置cookie一样。这意味着我们不能允许他们将$mobile_first设置为TRUE,否则他们会在第一次加载网站时获得移动版本。我没有任何JS cookie的经验,所以我无法真正说出。也许你不了解cookies是如何工作的。cookie设置为客户端时,第一个请求将永远看不到cookie。浏览器会将cookie与页面的原始http请求一起发送到服务器。因此,页面中的JS本身不会导致cookie发送到该服务器的第一个http请求,因为此时cookie不存在。对该服务器的后续请求将被删除查看第一页中生成的cookie,但不查看第一个请求。
$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;
      }
    }
  }