PHP检索未使用setcookie设置的Cookie

时间:2010-04-15 10:36:24

标签: php cookies

我遇到以下问题 - 第三方软件正在使用登录凭据设置cookie,然后将用户转发到我的应用程序。我现在需要检索cookie值:

问题是 - 我可以使用

在前端/ AS3中轻松完成此操作
var ticket : String = CookieUtil.getCookie( 'ticket' ).toString();

但在PHP中,cookie不在$ _COOKIES数组中。

Cookie值为:

Name: ticket
Domain: .myserver.com
Path : /
Send for: encrypted connections only
Expires: at end of session

我在PHP中看到并在之前设置的那个是:

Name: myCookie
Host: myserver.com
Path : /
Send for: any type of connection
Expires: at end of session

实际上,由于主机/域都是相同的,因此它应该在PHP脚本中可见,因为它在此域上运行。

有什么想法? Thankx

马丁

4 个答案:

答案 0 :(得分:1)

这可能是域子域问题吗?我的意思是www.myserver.com不在'下'.www.myserver.com ......?

Cookie应将域名设置为“.myserver.com”

目前获取此cookie的唯一方法是让脚本生活在“.www.myserver.com”下,例如“app.www.myserver.com”

编辑:OP有一个错字。但是域名为“myserver.com”的成员是“.myserver.com”吗?

答案 1 :(得分:1)

我不知道这对您是否有用,但PHP手册(cookie section)指出:

从客户端发送给您的任何 Cookie将自动包含在 $ _COOKIE auto-global array 如果variables_order包含“C”

你应该检查php config variables_order 指令,以便设置Cookie标志。

答案 2 :(得分:1)

啊,哈哈得到了! $ _COOKIE不是$ _COOKIES:)

养成使用error_reporting(E_ALL)报告级别在PHP中编程的习惯,以避免这种愚蠢的错误

答案 3 :(得分:0)

  

有什么想法吗?

实际上,cookie不是文本文件。但仅仅是HTTP标题 因此,要查看真正的cookie,必须观看HTTP交换日志,而不是客户端PC上的文件 我确信观看HTTP日志会对情况有所了解。它可以是多种方式的圆顶,例如LiveHTTPheaders mozilla插件。

CookieSet-Cookie标头都要计算在内。