我是php的初学者。我创建了一个登录页面。它运行得很好,但我怀疑如果两个用户一起登录,会话变量将更改为第二个用户的详细信息。当我在一台电脑的两个选项卡上尝试这个时,它发生了。不幸的是,我家里只有一台电脑,所以有人能告诉我,如果我在多台电脑上运行它,就会发生这种情况吗。
// SOME DETAILS HIDDEN
$sql = mysqli_query($con, "Select * From user Where UserId = '$uid' And Password = '$pass'");
while ($x = mysqli_fetch_array($sql)){
if ($x['UserId'] == $uid){
$_SESSION['Fname'] = $x['Fname'];
$_SESSION['Lname'] = $x['Lname'];
$_SESSION['userid'] = $x['UserId'];
// SOME MORE HIDDEN
} else {$err = "Invalid Entry";}
}
当会话启动时,会发生以下情况:
-
将创建一个唯一的标识符。它是一个由32个十六进制数字组成的随机字符串。
-
一个名为PHPSSID的cookie被创建并保存在用户的计算机上。唯一会话ID是该cookie的值。
-
将在服务器上的临时目录中自动创建一个文件。文件名的前缀是sess_,然后是创建的唯一会话id。
这个过程对于每个浏览器到php脚本的连接都是唯一的。因此,两个用户将具有不同的会话ID,您的代码将按预期执行。