关于cookie取值的问题

ooahaoo123 2012-01-06 10:08:38
关于cookie取值的问题,cookie设置在子目录下,在网站根目录无法获得COOKIE的值

在/home/wwwroot/sj/template/abc.php下设置了COOKIE

setcookie("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的值应该如何设置?????
...全文
675 26 打赏 收藏 转发到动态 举报
写回复
用AI写文章
26 条回复
切换为时间正序
请发表友善的回复…
发表回复
ooahaoo123 2012-01-08
  • 打赏
  • 举报
回复
[Quote=引用 25 楼 zt_king 的回复:]
看到消息时已经晚点了, 什么原因?
[/Quote]

唉,就是测试时忘记了清缓存
ooahaoo123 2012-01-06
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 zt_king 的回复:]
引用 5 楼 ooahaoo123 的回复:

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


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


你怎么知道没设置成功?用……
[/Quote]

放在home/wwwroot/sj下

设置COOKIE的脚本放在/home/wwwroot/sj/template/abc.php

我设置好后,再重新赋值给COOKIE,COOKIE的值并没有改变,但是如果设置COOKIE时去除作用域,是可以重新赋值,所以我觉得是没有设置成功。
ZT_King 2012-01-06
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 ooahaoo123 的回复:]

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


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

你怎么知道没设置成功?用工具查看下是否生成cookie便清楚是否生成cookie
你查看cookie的脚本放在哪里?
ooahaoo123 2012-01-06
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 zt_king 的回复:]
根据网站根目录设置相对路径才有效, 设置成'/'不存在你说的根目录下脚本无法获取Cookie值的情况, 用firebug查看cookie的生成情况.
[/Quote]

我的首页是放在home/wwwroot/sj 下
相对路径是写成 /sj 吗?
我试了一下,也设置不成功喔
ZT_King 2012-01-06
  • 打赏
  • 举报
回复
看到消息时已经晚点了, 什么原因?
ZT_King 2012-01-06
  • 打赏
  • 举报
回复
根据网站根目录设置相对路径才有效, 设置成'/'不存在你说的根目录下脚本无法获取Cookie值的情况, 用firebug查看cookie的生成情况.
ooahaoo123 2012-01-06
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 jakey9826 的回复:]
请指定第四个参数 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……
[/Quote]

我设置了COOKIE的作用域后,COOKIE重新赋值失败
ooahaoo123 2012-01-06
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 jakey9826 的回复:]
请指定第四个参数 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……
[/Quote]

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


要怎样设置?????
程序猿之殇 2012-01-06
  • 打赏
  • 举报
回复
请指定第四个参数 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.

ooahaoo123 2012-01-06
  • 打赏
  • 举报
回复
谢谢大家
ooahaoo123 2012-01-06
  • 打赏
  • 举报
回复
终于知道为什么会这样了。。。。
ooahaoo123 2012-01-06
  • 打赏
  • 举报
回复
终于知道为什么会这样了。。。。
ooahaoo123 2012-01-06
  • 打赏
  • 举报
回复
[Quote=引用 19 楼 jordan102 的回复:]
可能吧。这种问题你测试一下就知道了。
[/Quote]

测试了很久还是不行:
在/home/wwwroot/sj/template/abc.php下设置COOKIE

setcookie("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的值


好奇怪啊,一直弄不明白为什么会这样???
一起混吧 2012-01-06
  • 打赏
  • 举报
回复
可能吧。这种问题你测试一下就知道了。
ooahaoo123 2012-01-06
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 jordan102 的回复:]
可以肯定是。
[/Quote]


我想问一下,是不是空间的问题,我在本地测试,也是在织梦系统下,也运行正常。
一起混吧 2012-01-06
  • 打赏
  • 举报
回复
可以肯定是。
ooahaoo123 2012-01-06
  • 打赏
  • 举报
回复
之前这几个文件我是放在织梦系统下(/home/wwwroot/sj 该目录下安装了织梦系统)。一直测试不成功
我现在试了一下,把这几个文件放在/home/wwwroot/abc目录下就可以成功运行。这样说,原因是不是在这个织梦系统?
xuzuning 2012-01-06
  • 打赏
  • 举报
回复
你是在浏览器中测试你的代码的吗?

如果是在 IDE 中测试的,这就很正常了
ooahaoo123 2012-01-06
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 jordan102 的回复:]
不好意思,打错字。

你是怎么访问/home/wwwroot/sj/template/888.php文件的。是用同一个域名吗?
[/Quote]

是同一个域名。

访问/home/wwwroot/sj/template/888.php文件是:

ccc.abc.com/template/888.php

访问/home/wwwroot/sj/123.php文件是:

ccc.abc.com/888.php
一起混吧 2012-01-06
  • 打赏
  • 举报
回复
不好意思,打错字。

你是怎么访问/home/wwwroot/sj/template/888.php文件的。是用同一个域名吗?
加载更多回复(5)

21,887

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧