- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我使用 cookie 来实现“记住我”选项以在我的网站上登录。设置 cookie 工作正常。取消设置曾经有效。然后我制作了一个新版本的网站,带有httponly cookies;注销在本地主机上工作,但在服务器上不起作用。我在目录“test”中运行新代码;我仍然可以使用旧代码,旧代码对于旧登录功能(不是新登录功能)中设置的 cookie 运行良好。
以防万一它可能很重要,并证明我在 related questions 的答案中没有解决任何常见问题。喜欢uncorrect parameters , testing on the same page , headers already sent或取消设置 cookie 时的相对时间,我会显示我的代码。首先,设置 cookie(新的)的代码:
...
setcookie ('login', $login, time()+60*60*24*30,'/','e-history.cz', false, true);
setcookie ('pass', $pass, time()+60*60*24*30,'/','e-history.cz', false, true);
...
我的注销脚本:
<?php
include 'login_functions.php';
logout();
?>
注销函数:
function logout() {
include 'library.php'; //all functions and constants
//var_dump( headers_sent() ); //I've tested the headers, not sent yet
checkSession(); //starts session if not started
unset($_SESSION['login']); //I don't need to delete the rest of the session for logout
if(isset($_COOKIE['login'])) {
setcookie ('login', '', 1,'/','e-history.cz', false, true);
}
if(isset($_COOKIE['pass'])) {
setcookie ('pass', '', 1,'/','e-history.cz', false, true);
}
header('Location:index.php');
}
我已经测试了 header - 它们工作正常。响应 header (根据 Chrome 的 HTTP Spy 扩展)包括以下内容:
Set-Cookie pass=deleted;
expires=Thu, 01-Jan-1970 00:00:01 GMT;
path=/;
domain=e-history.cz;
httponly
Set-Cookie login=deleted;
expires=Thu, 01-Jan-1970 00:00:01 GMT;
path=/;
domain=e-history.cz;
httponly
编辑 - 我把我以前的“答案”作为问题的一部分,因为它只工作了一段时间;我不知道为什么它现在不起作用。我在非 httponly、httponly 和混合 cookie 之间切换了几次;每次我在创建新 cookie 之前删除旧 cookie 并注意不要使它们不匹配。无论如何,httponly 似乎没有什么不同。
I have found a similar question saying that unsetting the httponly cookie is not possible without server interaction. Theoretically, it shouldn't be a problem, as I use php, which works server-side. However, it's not so easy in practice. But there's a solution, suggested in its answer: to make one of the cookies with and the other without httponly property. I was afraid that having the old value in the password cookie would collide with login as another user, but I tested it and it works fine, the new user's password just overwrites the old user's one.
最佳答案
问题不在 httponly 中,甚至在我链接的任何其他问题中也不在.在测试子目录 (e-history.cz/test) 上,这没有发生。结果是我可以删除主域生成的 cookie,即使测试域使用 httponly cookie,但我无法从测试子目录中删除 cookie。我明确地将点添加到域中,现在一切正常。对主域和测试域使用相同的 cookie 现在似乎不是问题 - 如果它是一个问题,我会完全删除点(通过设置 null 或 '' 来调用默认值,而不是设置域)。
关于php - 当 httponly 为 true 时,Cookies 抵抗 setcookie() 删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27982461/
我正在尝试如下设置 cookie。 CookieSyncManager.createInstance(context); CookieManager cookieManager = CookieMan
我看到很多人问过类似的问题,所以如果我重复了,但我在其他帖子中找不到答案,请见谅。 这只是一个测试页面,在本地主机上运行。我有一个 HTML 登录页面,将表单数据发送到 PHP 脚本,该脚本正在检查
我已经进行了登录,它设置了一个带有估算电子邮件地址值的 cookie,因此在 global.php 文件中,它使用以下方式存储用户数据的数组: $email = $_COOKIE["PeopleHub
您好,我正在尝试在我的网站上使用 cookie。在我的站点中实现它们之前,我创建了两个测试页面来试用它们,但它似乎效果不佳。 第一页有: 第二页有: 所以为了测试它,我先转到第一页,然后转到第二页
您好,我正在尝试在我的网站上使用 cookie。在我的站点中实现它们之前,我创建了两个测试页面来试用它们,但它似乎效果不佳。 第一页有: 第二页有: 所以为了测试它,我先转到第一页,然后转到第二页
我定期在 Twitter 应用程序的回调页面中设置 cookie。一切正常。 现在,我使用 jQuery 提交表单,回调函数激活 PHP 脚本。该脚本只需将一个 cookie 设置为 $_POST 的
所以,我有一个简单的脚本,允许您在任何“团队名称”之间进行选择。当您选择并提交时,它应该使用选择的值(团队名称的哈希版本)执行 php setcookie。 相关代码如下: 和 HTML Selec
quys,我的 PHP 应用程序有问题。 我有 2 个页面用于登录和注册。两个页面都使用通用的 cookies 类。一切正常,除了一件事:setcookie() 仅适用于 /signin 页面(coo
我想做的是设置 cookie至 Response经过一些Validation在后端。 这是我的代码: Controller public class MyController : Controller
我有一个 php 文件: 0){ $cookie_name = "auth"; $cookie_value = "ok"; $cookie_expire = "0";
我有一个设置 cookie 的页面,如果您选中一个复选框,它会回显一个字符串。字符串打印正确,但 cookie 从未设置,我不知道为什么。 " method="post"> Option 1:
在一页上我有这样的东西 setcookie('user', 'value' ,6000, '/', 'mydomain.co.uk'); 在我的后续页面上 var_dump($_COOKIE); 我可
有什么方法可以设置在子域上不可可读的 cookie?换句话说,让 cookie 在 domain.com 上可用,但不 www.domain.com 或 xyz.domain.com 。 //this
一些不是我编写的应用程序,也不是用 PHP 编写的,它为域 www.example.com 创建了一个 cookie。 我正在尝试替换该 cookie。所以在 PHP 中我做到了: setcookie
这个问题在这里已经有了答案: PHP - setcookie(); not working (6 个答案) 关闭 7 年前。 我正在使用这个代码 setcookie("we", 2, time()+
我的登录似乎没有创建 cookie。该表单一直到达脚本的 cookie 创建部分,甚至回显已创建 cookie,但实际上并未创建 cookie。 这是我的代码的 cookie 部分: if (!$er
在 example on php.net使用session_destroy(),它指定删除一个cookie: if (ini_get("session.use_cookies")) { $pa
我正在尝试将 PHP cookie 设置为自用户登录后 1 年后过期,我这样做是这样的: setcookie("myCookie",'exampleUserName',(365 * 24 * 60)
我希望有人可以帮助解决我在处理某些代码时遇到的这个小问题。请记住,这只是一个业余爱好网站,我知道存在安全漏洞。我编写了一个名为 set_remember_cookies 的函数,当用户选中“记住我”框
在 example on php.net使用session_destroy(),它指定删除一个cookie: if (ini_get("session.use_cookies")) { $pa
我是一名优秀的程序员,十分优秀!