Php 如何完全销毁存储的所有会话?
我通过下面的一段代码为登录用户存储这些会话:Php 如何完全销毁存储的所有会话?,php,Php,我通过下面的一段代码为登录用户存储这些会话: $_SESSION = $r-> fetch_array(MYSQLI_ASSOC); // Store the HTTP_USER_AGENT: $_SESSION['agent'] = md5($_SERVER['HTTP_USER_AGENT']); 然后我把它们打印出来: Array ( [user_id] => 1 [username] => asdfxc [user_level] => 0 [agent] =
$_SESSION = $r-> fetch_array(MYSQLI_ASSOC);
// Store the HTTP_USER_AGENT:
$_SESSION['agent'] = md5($_SERVER['HTTP_USER_AGENT']);
然后我把它们打印出来:
Array ( [user_id] => 1 [username] => asdfxc [user_level] => 0 [agent] => d30847a2ec9c978a0e4db5470b78b327 [lid] => 1 )
我想要的是在我的logout.php
页面中销毁它们,我的代码如下:
// If no first_name session variable exists, redirect the user:
if (!isset($_SESSION['agent']) OR ($_SESSION['agent'] != md5($_SERVER['HTTP_USER_AGENT']) ) ) {
$url = BASE_URL . 'index.php'; // Define the URL.
ob_end_clean(); // Delete the buffer.
header("Location: $url");
exit(); // Quit the script.
} else { // Log out the user.
$_SESSION = array(); // Destroy the variables.
session_unset();// remove all session variables
session_destroy(); // Destroy the session itself.
setcookie (session_name(), '', time()-3600); // Destroy the cookie.
}
// Print a customized message:
echo '<p>You are now logged out.</p>';
2/将其填充到home.php
页面中
问题在于,当您的查询没有选择特定用户时,您为每个用户提供相同的id
SELECT user_id, username, user_level FROM users
应该有一个
WHERE
子句来标识您想要的用户问题是您为每个用户提供相同的id,因为您的查询没有选择特定的用户
SELECT user_id, username, user_level FROM users
应该有一个
WHERE
子句来标识您想要的用户您如何知道会话仍然存在?你是什么意思?“作为第二个用户ID,第一个用户ID的会话仍然被存储。”我通过查看用户名
就知道了。当我尝试执行print\r($\u会话)时,第一个用户ID的username
始终会被回显测试时,第二个用户id的代码>。另外,我在index.php
页面中添加了if(isset($\u SESSION['agent']){echo Welcome:'.$\u SESSION['username'.!';}
的条件,作为登录用户的目标。相同的数组(keys=听起来像是你如何填充会话的问题。会话是用户唯一的,所以你总是填充第一个idSo。我的代码(我存储和销毁会话的方式)有什么问题吗?我应该怎么做来纠正它?你真的能帮我给出答案吗?谁知道你的答案也能帮助社区!从users中选择user\u id、username、user\u level
这样每个人都是一样的?如果没有一个WHERE=
每个人都会有相同的id,你怎么知道会话仍然存在?你说“作为第二个用户id登录,第一个用户id的会话仍然被存储”是什么意思通过查看username
,我就知道了。在测试时,当我尝试对第二个用户ID执行print\r($\u SESSION);
时,第一个用户ID的username
仍然会回显。此外,我还添加了if(isset($\u SESSION['agent']){echo Welcome:'.$\u SESSION['username'.!}的条件
在index.php
页面中作为登录用户的指向。相同的数组(keys=听起来像是你如何填充会话的问题。会话是用户唯一的,所以你总是填充第一个idSo。我的代码(我存储和销毁会话的方式)有什么问题吗?我应该怎么做来纠正它?你真的能帮我给出答案吗?谁知道你的答案也能帮助社区!从用户中选择用户id、用户名、用户级别
这样每个人都是相同的?如果没有WHERE=
每个人都有相同的id
SELECT user_id, username, user_level FROM users