【发布时间】:2016-02-18 12:17:10
【问题描述】:
我设法让会话使用 PHP,但是,会话正在合并/混合。如果一个用户登录并访问某个页面,然后一个新用户访问同一页面,他们将跳转到第一个用户的会话。
我的代码如下:
session_start();
session_id();
$rainbow = mysqli_query($db, "SELECT * FROM Users WHERE ID='" . $client->ID . "'");
$rainbow = mysqli_fetch_object($rainbow);
$_SESSION['Username'] = $rainbow->Username;
$_SESSION['Password'] = $rainbow->Password;
每次加载页面时,都会调用session_start()。我也在使用session_id(),所以我不确定会话合并的原因。
这正在成为一个大的安全问题。
此外,页面似乎与此问题一起被缓存,但这似乎不是由缓存引起的会话问题。如果您刷新页面,您将被放回正确的会话中并且页面将被更新,否则,它不会。
【问题讨论】:
-
你能部分代码你是如何使用 session_id() 的吗?以及会议是如何开始的?看来你的问题在那里
-
session_start(); session_id();
-
$rainbow = mysqli_query($db, "SELECT * FROM Users WHERE ID='" . $client->ID . "'"); $rainbow = mysqli_fetch_object($rainbow); $_SESSION['用户名'] = $rainbow->用户名; $_SESSION['密码'] = $rainbow->密码;
-
你不需要调用 session_id();它只是返回当前会话 ID。您可以尝试以下技巧以确保您的会话正常或不正常。 session_start(); var_dump($_SESSION['test_name']); $_SESSION['test_name'] = 55;
-
删除 session_id() 后;你根本没有登录。