非常不寻常的用户登录PHP会话问题


Very Unusual User Login PHP Session Issue

我为一个网站创建了一个基本的PHP登录系统。到目前为止,会员唯一能参与的真正功能是一个从无到有的论坛。

由于某些原因,会话变量没有与正确的用户对齐。例如:

  1. 用户John登录。一切正常。他发布到一个论坛,他的用户名被归因于他的帖子。

  2. 用户Jane登录了。事情变得很奇怪。当Jane在论坛上发帖时,John的用户名会被归因于该帖子。同样,当John在Jane登录后发帖时,Jane的用户名也会被归因于该帖子。

我不知道为什么或怎么会发生这种事。

-----------请求的代码-------------------------

这是登录代码,我想问题一定在这里:

<?PHP
session_start();
$citizen_email = $_POST['form_email'];
$citizen_password = $_POST['form_password'];
//
// Connect To Database
$connection = mysqli_connect("localhost", "notreal", "notreal", "notreal");
// Create & Submit Query
$query = "SELECT * FROM citizens WHERE citizen_email='$citizen_email' AND citizen_password='$citizen_password'";
$query_result = mysqli_query($connection, $query);
$query_num_rows = mysqli_num_rows($query_result);
if ($query_num_rows > 0) {
while ($query_array = mysqli_fetch_array($query_result, MYSQLI_ASSOC)) {
$citizen_name = $query_array['citizen_name'];
$citizen_id = $query_array['citizen_id'];
}
$_SESSION["citizen_id"] = $citizen_id;
$_SESSION["citizen_name"] = $citizen_name;
$sqlOnlineCitizen = "INSERT INTO online_citizens VALUES ('$citizen_id', now(), now())";
$onlineCitizenGo = mysqli_query($connection, $sqlOnlineCitizen);
$content = "<p>Welcome to Sachap $citizen_name. <a href='"http://nationsimulationgame.com/nation/index.php'">Click here</a> to continue.</p>";
} else {
$content = "<p>The email/password combination you provided did not match any citizenship records. You can <a href='"customs_login.php'">try again</a> or <a href='"#'">recover your password.</a></p>";
}
?>

这些是真正的用户还是测试帐户?他们可能有相同的电子邮件和密码,但名称不同吗?