【发布时间】:2018-01-14 23:01:57
【问题描述】:
这里是用户登录的地方。当我在“记住我”未激活的情况下登录时,我似乎无法注销...
while($user = $stmt->fetch(PDO::FETCH_ASSOC)) {
$passwordDB = $user['mypassword'];
$email = $user['email_address'];
$userid = $user['user_id'];
}
if ($remember_me == "true"){ // Create a Cookie if remember_me is active
$expire = time()+60*60*24; // Valid for only 1 day
setcookie("cookie_username", $username, $expire, "/");
setcookie("cookie_email", $email, $expire, "/");
setcookie("cookie_userid", $userid, $expire, "/");
} else if ($remember_me == "false") { // Only create a session if remember_me is not active
session_start(); // cannot logout if i put it here
$_SESSION['session_userid'] = $userid;
$_SESSION['session_username'] = $username;
$_SESSION['session_email'] = $email;
}
我的 php 注销代码
<?php
require_once 'mydatabase.php';
$_SESSION = array();
if (ini_get("session.use_cookies")) {
$params = session_get_cookie_params();
setcookie(session_name(), '', time() - 86400,
$params["path"], $params["domain"],
$params["secure"], $params["httponly"]
);
}
?>
选中“记住我”时,我可以正确注销。
问题解决:我不小心删除了注销顶部的session_start(),然后忘记将其放回。
【问题讨论】:
-
你能把代码贴在你检查用户是否登录的地方吗?我假设您需要重置所有字段的 cookie 值。使用浏览器的 Web 开发人员工具查看设置了哪些值
标签: php session-cookies logout