问题标签 [setcookie]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2791 浏览

php - PHP 无法设置cookie()

我在 php 中过期 cookie 时遇到问题。这是我的代码:

每次我点击刷新,我都会得到这个结果:

我可以用不同的键值做一个 setcookie,也可以让它们过期。我似乎无法为 reitinvestor_user 和 reitinvestor_pass 做这件事。怎么了?

0 投票
1 回答
1333 浏览

php - 设置cookie不起作用

我有一个名为 index.php 的简单文件。我需要向它传递一个查询字符串,该查询字符串将存储在一个永不过期的 cookie 中。该文件看起来完全像这样:

但是,没有设置 cookie。referrer_id 里面的内容是一个简单的整数(在我所做的测试中,它是 1)。函数 setCoookie 返回 true,一切似乎都正常,但没有设置 cookie。难道我做错了什么?

0 投票
3 回答
609 浏览

php - PHP + ie6 + cookies:cookie 的 hello world 失败

我试过了,没有用!我的问题是 php 的 setcookie() 在 IE6 中失败。它在 Firefox 3 和 IE7/8 上运行良好(尽管有问题)。以下是代码。IE6 显示失败。简单的问题:为什么?

我怀疑 P3P链接),或者可能是时区的一些错误——IE6 javascript 没有将时间转换为 php 使用的相同标准(因此所有服务器发出的 cookie 都会自动过期)。

这是我所做的: 对于 p3p 问题,我插入了上面的标题标签。我还创建了一个策略文件和一个策略参考,并通过 w3c 的 p3p 检查器运行我的网站,没有任何错误。

对于时区问题,我在 browscap.ini 中重置了时区。我还将时钟向前和向后调整了 24 小时。

如果您能给我任何新的尝试,将不胜感激。我只需要一个适用于 IE6 的 Hello World cookie 设置器。

我很感激。

*更新:我听说独立的 IE6 存在与此匹配的问题。任何使用 IE6 的人都可以快速检查您是否可以在我的alpha上将商品添加到购物车?

0 投票
4 回答
34733 浏览

c# - 如何为返回的 Set-Cookie 会话 ID 解析 HttpWebResponse.Headers.Keys

我正在尝试使用 ASP.NET 网站创建一个 HttpWebRequest/HttpWebResponse 会话,以便稍后通过 url 参数解析 HTML 表单(这部分我知道该怎么做),但我不明白如何解析和设置 cookie,例如会话 ID。在Fiddler中,它显示ASP.NET Session ID是通过Set-Cookie在对url的/路径的请求的响应中返回的,但是我怎样才能提取这个session id并将其设置为下一个HttpWebRequest的cookie ? 我知道这个 Set-Cookie 标头可以在 HttpWebResponse.Headers.Keys 中找到,但是有解析它的直接路径吗?谢谢!

0 投票
23 回答
312362 浏览

cookies - 本地主机上具有显式域的 Cookie

我一定错过了一些关于 cookie 的基本知识。在 localhost 上,当我在服务器端设置 cookie并将域明确指定为 localhost(或 .localhost)时。某些浏览器似乎不接受 cookie。

Firefox 3.5:我在 Firebug 中检查了 HTTP 请求。我看到的是:

或(当我将域设置为 .localhost 时):

在任何一种情况下,都不会存储 cookie。

IE8:我没有使用任何额外的工具,但 cookie 似乎也没有被存储,因为它没有在后续请求中被发回。

Opera 9.64: localhost 和 .localhost 都可以工作,但是当我检查 Preferences 中的 cookie 列表时,域设置为 localhost.local,即使它列在 localhost 下(在列表分组中)。

Safari 4: localhost 和 .localhost 都可以工作,但它们总是在 Preferences 中列为 .localhost。另一方面,没有显式域的 cookie,它仅显示为 localhost(无点)。

本地主机有什么问题?由于存在如此多的不一致,因此必须有一些涉及 localhost 的特殊规则。此外,我并不完全清楚为什么域必须以点为前缀?RFC 2109 明确指出:

Domain 属性的值不包含嵌入的点或不以点开头。

为什么?该文件表明它必须做一些与安全有关的事情。我不得不承认我没有阅读完整的规范(以后可能会这样做),但这听起来有点奇怪。基于此,在 localhost 上设置 cookie 是不可能的。

0 投票
2 回答
1340 浏览

php - 使用 php setcookie() 创建并通过 AJAX 和 XMLHttpRequest 调用的 Cookie 在 Firefox 重新启动时消失

我正在制作一个简单的 ajax 登录系统,使用 cookie 来记住用户名或在下次访问时自动登录。一切正常,cookie 设置为未来 10 天,我去查看 Firefox 的 cookie 时可以看到它们,但是当我重新启动浏览器时它们被删除。cookie 是使用 jQuery .get 函数调用的 php 脚本中的 setcookie() 设置的。我也试过 .post 但同样的事情发生了。Firebug 正确报告 Set-Cookie 标头。我在本地主机上尝试过,在一个真实的服务器上,我尝试将所有参数传递给 setcookie() 因为我读到了一些 Firefox 将其视为会话 cookie 的内容,如果你不这样做,我尝试了主机名上的 2 个点和所有可能的解决方案我可以在网上找到。我不明白为什么它不起作用...

0 投票
1 回答
1410 浏览

php - 设置域和路径时,PHP 中的 setrawcookie 在 FF 和 Chrome 中无法正常工作

这适用于 Safari、FF、Chrome 等:

这在 FF 或 Chrome 中不起作用:

我使用 PHP 已经有一段时间了,以前从未见过这种行为。

0 投票
2 回答
11147 浏览

internet-explorer - IE8 没有正确地跨域应用 cookie - 仅在一台机器上

我有任何有趣的问题让我完全难过。

我构建了一段生产代码,它读取由另一个部门管理的机器设置的 IBM LTPA 令牌 cookie,对其进行验证,并使用它登录到我的组管理的系统(通过设置一些特殊的 cookie)。这种单点登录过程对最终用户完全透明,并且在所有浏览器的生产环境中已经运行了好几年。

最近,我注意到它在我的 IE8 开发机器上无法正常工作。我最近从 Vista 升级到了 Windows 7。我不确定这在升级之前或之后是否在我的机器上不起作用,因为它已经工作了很长时间,我没有理由对其进行定期测试。同一台机器上的 FireFox 3.5 和 Chrome 4 dev 都按预期工作。这台机器上的 XP SP3 虚拟机上的 IE6 工作正常。家里多台机器上的 IE8 工作正常(Windows Server 2008 和 Windows 7)。

出于诊断目的,我从我的开发 IE8(WinInet 缓存)中清除了所有缓存的数据,以从头开始。我启动了 Fiddler 来跟踪这个过程并确定什么不起作用。我发现的东西很有趣,我无法解释。

在初始站点登录后——我们称之为 ltpa.domain.com,会话 cookie 按预期从服务器下推,带有 Set-Cookie 标头。我验证域是否正确设置为 .domain.com 并且路径是 /。登录后来自浏览器的所有后续请求都按预期将所有 cookie 与每个请求一起推送回服务器。事实上,这是一个门户网站,并且还有一些来自portal.domain.com 的附加内容也被检索;所有 cookie 也会正确传递到该服务器。

现在来看有趣的一点——当我向 myserver.domain.com 发出请求时——由 ltpa.domain.com 设置的域级别 cookie 不会被推送到 myserver.domain.com,即使它们应该是。 如果 cookie 丢失,单点登录进程会自动重定向回 l​​tpa.domain.com(并将 cookie 推送到 ltpa 登录进程用来重定向的客户端)—— myserver 设置的域级别 cookie 没有被推送备份到 ltpa.domain.com。

同样,这只发生在我知道的我的开发机器上的这个 IE8 实例上。这个过程每天使用数千次,拥有相当大的用户群,我们没有收到来自最终用户的其他投诉——因此没有迹象表明这是 IE8 或类似问题的系统性问题。

在我看来,这种行为将 myserver.domain.com 和 ltpa.domain.com 视为单独的域,即使它们不是。

有两点可能值得一提——但可能是红鲱鱼,因为它一直都是这样,从来没有引起过问题。

  • DNS在这里有点时髦。LTPA.domain.com 解析为外部 IP。但是,myserver.domain.com 解析为内部 IP。对该 IP 进行反向查找会给出内部 dns 名称——比如说 myserver.internal.domain.com。我推测,也许 IE8 正在执行某种反向查找以防止基于 DNS 的攻击——所以我修改了我的 HOSTS 文件并将 myserver.domain.com 指向外部 IP 以进行测试。我在 Fiddler 中验证了请求将发送到外部 IP - 但它与 cookie 没有区别。他们仍然没有通过。

  • 以前,myserver.domain.com 位于 IE WinInet 安全配置页面中的“受信任的站点”下。我删除了它和那里的另一个站点。我们称这台机器为 my2.domain.com;这台机器巧合(或者可能不是?)也没有通过 ltpa.domain.com 设置的域 cookie。在这种情况下,我不需要传递 cookie,但我还是测试了它,看看这个问题是否影响了其他机器。在 IE 状态栏中,ltpa.domain.com、portal.domain.com 和 myserver.domain.com 都显示在“Internet”区域下。奇怪的是 my2.domain.com 仍然在状态栏中显示“受信任的站点”,即使它没有在对话框中列出?是的,我在进行更改后重新启动。

其他注意事项。

  • 我知道 IE 和非 .com 域、引用的 cookie 值和其他 cookie 异常的其他问题——这里在 stackoverflow 和 Internet 上的其他地方提到。这些都不适用。我已经阅读了 Eric Law 关于 cookie 内部的 IEInternals 文章——http: //blogs.msdn.com/ieinternals/archive/2009/08/20/WinINET-IE-Cookie-Internals-FAQ.aspx

  • IE 中没有启用时髦的插件。只需 Flash、Silverlight、Live ID 登录助手和 Fiddler2。

  • 没有用于过滤特定于我的域的内容的 InPrivate 规则。

  • 由于我使用的是笔记本电脑,因此我尝试了家庭网络中的 IE8(重新启动后)以排除 DNS 问题。我在家里遇到了同样的行为,所以据我所知,时髦的 DNS 不是问题。

  • 我已经多次浏览了所有的 IE 设置,以为我可能错过了一个不起眼的 cookie 设置。隐私设置为“中”,没有特殊处理的网站。

  • 使用开发工具,我确保未选中“始终从服务器刷新”。

  • 我不认为这是我可以向 Microsoft 报告的任何事情,因为我无法在其他任何地方重现该问题。

所以在这一点上,我不知所措。没有在 IE8 中打开某种我不知道的诊断模式,或者没有对其进行调试的代码......我已经没有好主意了。

我在想我遇到了错误,某些注册表设置或类似设置已被调整,或者某处已损坏。

有任何想法吗?

0 投票
2 回答
540 浏览

php - 浏览器退出时cookie被销毁

我目前正在我的网站中使用 cookie,我做的第一件事是检查用户是否有 cookie,如果他们不显示一个菜单,如果他们点击它会创建一个 cookie,但如果然后退出cookie被破坏的浏览器,这是我的代码,

基本上 index() 函数进行检查,createCookie 创建一个新的 cookie,任何人都可以看到任何问题吗?

0 投票
1 回答
364 浏览

php - Cookie 过期时间

是否可以查明 cookie 何时过期,我已经设置了我的 cookie

是否可以以某种方式打印出屏幕上的到期日期?