我正在建立一个可供某些用户登录的网站。我的代码创建了一个简单的cookie。 早些时候,我的代码可以正常工作并创建cookie,并允许用户登录。但是,在创建注销按钮并使用它之后,我似乎无法再次创建cookie(我的网站无法识别cookie,并且没有 当我检查时,cookie会显示在chrome中)。 我已经看过所有其他有关创建cookie以及无法创建cookie的线程,但是我无法弄清楚出了什么问题。
这是我创建cookie的代码:
$userStuff = array('name' => $username,'password' => $password);
$date_of_expiry = time() + 60 * 60 * 24 * 1 ;
setcookie("user", $userStuff, $date_of_expiry,"/" ) ;
我知道安全性非常宽松,我不应该将密码等直接存储在cookie中,但是我想首先处理其他事情。 此代码在任何html之前。
这是我的代码,其中我更改了cookie的到期日期以注销:
setcookie('user', $userStuff, time() - 3600, '/');
设置注销的过期时间
找到了问题。 PHP决定不希望在Cookie中使用数组...
我发现了错误。 显然,您要么不能在cookie中使用数组,要么就这次不允许我在cookie中使用数组。
谢谢保罗:P你夺走了我的50点声誉
别客气!;)
我知道这还有一点,但是为什么不使用$_SESSION? 它将带有会话令牌的cookie存储在客户端的浏览器中(运行session_start时),大多数数据存储在服务器端,这更加安全。 对于用户身份验证数据和令牌,这可能是一个更好的选择。
例:
//First thing init the session
session_start();
$_SESSION['username'] = $username;
$_SESSION['password'] = $password;
//Or retreive the data...
$username = $_SESSION['username'];
//Later when you want to log out just destroy the session:
session_destroy();
你好吗?
如果要删除Cookie,则应传递过去的日期,例如:
setcookie('user', $userStaff, time() - 3600, '/');
问候。
抱歉,这实际上是我所做的。 我不小心将我的较新代码粘贴到了此处,尝试在此处重置到期日期,以查看是否可以重新创建cookie。