我遇到以下问题 - 第三方软件正在使用登录凭据设置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
马丁
答案 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)
养成使用error_reporting(E_ALL)
报告级别在PHP中编程的习惯,以避免这种愚蠢的错误
答案 3 :(得分:0)
有什么想法吗?
实际上,cookie不是文本文件。但仅仅是HTTP标题 因此,要查看真正的cookie,必须观看HTTP交换日志,而不是客户端PC上的文件 我确信观看HTTP日志会对情况有所了解。它可以是多种方式的圆顶,例如LiveHTTPheaders mozilla插件。
Cookie
和Set-Cookie
标头都要计算在内。