关于cookie取值的问题,cookie设置在子目录下,在网站根目录无法获得COOKIE的值在/home/wwwroot/sj/template/abc.php下设置了COOKIEsetcookie("abc", $abc,time()+3600*24*7,"/");
但是在网站根目录下的123.php 无法获得cookie的值。123.php所在目录为:/home/wwwroot/sj网站用的是二级域名:ccc.abc.com尝试过setcookie("abc", $abc,time()+3600*24*7,"/home/wwwroot/sj"); 也不行
如果要在根目录下获得COOKIE的值应该如何设置?????

解决方案 »

  1.   

    请指定第四个参数 domain
    domain 
    The domain that the cookie is available. To make the cookie available on all subdomains of example.com then you'd set it to '.example.com'. The . is not required but makes it compatible with more browsers. Setting it to www.example.com will make the cookie only available in the www subdomain. Refer to tail matching in the » spec for details. 
      

  2.   


    下面两句都试过了,但是还是不行
    setcookie("abc", $abc,time()+3600*24*7,"/home/wwwroot/sj",".abc.com");
    setcookie("abc", $abc,time()+3600*24*7,"/",".abc.com");
    要怎样设置?????
      

  3.   


    我设置了COOKIE的作用域后,COOKIE重新赋值失败
      

  4.   

    根据网站根目录设置相对路径才有效, 设置成'/'不存在你说的根目录下脚本无法获取Cookie值的情况, 用firebug查看cookie的生成情况.
      

  5.   


    我的首页是放在home/wwwroot/sj 下
    相对路径是写成 /sj 吗?
     我试了一下,也设置不成功喔
      

  6.   


    你怎么知道没设置成功?用工具查看下是否生成cookie便清楚是否生成cookie
    你查看cookie的脚本放在哪里?
      

  7.   


    放在home/wwwroot/sj下设置COOKIE的脚本放在/home/wwwroot/sj/template/abc.php我设置好后,再重新赋值给COOKIE,COOKIE的值并没有改变,但是如果设置COOKIE时去除作用域,是可以重新赋值,所以我觉得是没有设置成功。
      

  8.   

    abc.php中setcookie设置cookie作用域为'/sj',重新赋值需要再次setcookie, 不能简单$_COOKIE进行赋值.
    你去除作用域后,默认作用域为当前路径,即'/sj/template/',这样在sj目录下的脚本是无法读取到cookie值的.
      

  9.   


    abc.php中setcookie设置cookie作用域为'/sj'后,重新setcookie赋值,赋不到值啊。
    但是作用域为'/sj/template/',重新setcookie赋值,才可以赋到值
      

  10.   


    现在情况是这样子:abc.php中setcookie设置cookie作用域为'/sj', /home/wwwroot/sj/123.php
    可以获得到COOKIE的值。但是/home/wwwroot/sj/template/888.php却获不到COOKIE的值。弄不明这是什么原因?????
      

  11.   

    正常情况abc.php中setcookie设置cookie作用域为'/sj',/home/wwwroot/sj/123.php和
    /home/wwwroot/sj/template/888.php都能取到COOKIE的值,但现在只有,/home/wwwroot/sj/123.php才能取到COOKIE的值。纠结中,是不是还要设置其他东西?????
      

  12.   

    这似乎不可能,你的是只能访问/home/wwwroot/sj/template/888.php文件的。是用同一个域名吗?
      

  13.   

    不好意思,打错字。你是怎么访问/home/wwwroot/sj/template/888.php文件的。是用同一个域名吗?
      

  14.   


    是同一个域名。访问/home/wwwroot/sj/template/888.php文件是:ccc.abc.com/template/888.php访问/home/wwwroot/sj/123.php文件是:ccc.abc.com/888.php
      

  15.   

    你是在浏览器中测试你的代码的吗?如果是在 IDE 中测试的,这就很正常了
      

  16.   

    之前这几个文件我是放在织梦系统下(/home/wwwroot/sj 该目录下安装了织梦系统)。一直测试不成功
    我现在试了一下,把这几个文件放在/home/wwwroot/abc目录下就可以成功运行。这样说,原因是不是在这个织梦系统?
      

  17.   


    测试了很久还是不行:
    在/home/wwwroot/sj/template/abc.php下设置COOKIEsetcookie("abc", $abc,time()+3600*24*7,"/");这样设置的话文件:/home/wwwroot/sj/123.php可能获得COOKIE的值
    但是/home/wwwroot/sj/template/888.php却不能获得COOKIE的值如果在/home/wwwroot/sj/template/abc.php下设置
    setcookie("abc", $abc,time()+3600*24*7,"/sj");这样设置的话文件:/home/wwwroot/sj/123.php不能获得COOKIE的值
    但是/home/wwwroot/sj/template/888.php却可以获得COOKIE的值
    好奇怪啊,一直弄不明白为什么会这样???