问题标签 [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.
php - PHP 无法设置cookie()
我在 php 中过期 cookie 时遇到问题。这是我的代码:
每次我点击刷新,我都会得到这个结果:
我可以用不同的键值做一个 setcookie,也可以让它们过期。我似乎无法为 reitinvestor_user 和 reitinvestor_pass 做这件事。怎么了?
php - 设置cookie不起作用
我有一个名为 index.php 的简单文件。我需要向它传递一个查询字符串,该查询字符串将存储在一个永不过期的 cookie 中。该文件看起来完全像这样:
但是,没有设置 cookie。referrer_id 里面的内容是一个简单的整数(在我所做的测试中,它是 1)。函数 setCoookie 返回 true,一切似乎都正常,但没有设置 cookie。难道我做错了什么?
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上将商品添加到购物车?
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 中找到,但是有解析它的直接路径吗?谢谢!
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 是不可能的。
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 个点和所有可能的解决方案我可以在网上找到。我不明白为什么它不起作用...
php - 设置域和路径时,PHP 中的 setrawcookie 在 FF 和 Chrome 中无法正常工作
这适用于 Safari、FF、Chrome 等:
这在 FF 或 Chrome 中不起作用:
我使用 PHP 已经有一段时间了,以前从未见过这种行为。
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 丢失,单点登录进程会自动重定向回 ltpa.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 中打开某种我不知道的诊断模式,或者没有对其进行调试的代码......我已经没有好主意了。
我在想我遇到了错误,某些注册表设置或类似设置已被调整,或者某处已损坏。
有任何想法吗?
php - 浏览器退出时cookie被销毁
我目前正在我的网站中使用 cookie,我做的第一件事是检查用户是否有 cookie,如果他们不显示一个菜单,如果他们点击它会创建一个 cookie,但如果然后退出cookie被破坏的浏览器,这是我的代码,
基本上 index() 函数进行检查,createCookie 创建一个新的 cookie,任何人都可以看到任何问题吗?
php - Cookie 过期时间
是否可以查明 cookie 何时过期,我已经设置了我的 cookie
是否可以以某种方式打印出屏幕上的到期日期?