[英]How to restrict the user to login on multiple windows on same browser with different user types
登录页面及其功能正常运行,但是现在我遇到了一个问题,当用户使用一个帐户登录时,登录后他/她在同一浏览器上打开新窗口并键入loginviewcontroller.php,它没有显示以前的登录信息。 php页面和用户可以同时在两个窗口上使用不同的帐户登录。
如何限制用户登录多个窗口?
我需要类似gmail的功能,如果用户在同一浏览器中打开新窗口并输入www.gmail.com时在浏览器中登录一次,它会显示已登录的用户信息...但不显示gmail登录名页...
请帮助我解决此问题。
这是loginviewcontroller代码
<?php
header("Cache-Control: private, must-revalidate, max-age=0");
header("Pragma: no-cache");
header("Expires: Fri, 4 Jun 2010 12:00:00 GMT");
if (!isset($_POST['submit'])) {
/// HTML code for login page....
} else {
/// Here the values are posting...
$Username = $_POST['uname'];
$Password = $_POST['pwd'];
$User_Type = $_POST['type'];
session_start();
If (!(empty($Username) && empty($Password) && empty($User_Type))) {
$model = new UsersModel();
$rowsCount = $model->checkUser($Username, $Password, $User_Type);
if ($rowsCount != 0) {
$_SESSION['user'] = $Username;
header("location:loggedin.php");
} else {
echo '<script type="text/javascript">alert("Enter username and password correctly");
window.location.href="LoginViewController.php";</script>';
}
}
}
?>
这是loginin.php代码
<?php
session_start();
$_SESSION['logged_in'] = 'true';
if (!isset($_SESSION['user'])) {
header('Location: LoginViewController.php');
exit();
}
echo '"<div style="background:white; text-align:right"> Login as:' . $_SESSION['user'] . '
<a href="LogoutViewController.php" style="text-align:right">Logout</a></div>"';
?>
您正在用户会话中设置变量。 设置此变量后,您就不能再允许用户登录,因为该用户已经登录。
另外,不要忘记调用session_start ()。 也就是说,您可以将其放在登录页面的最上方:
session_start();
if (isset($_SESSION['user']))
header("location:loggedin.php");
<?php
session_start();
if (!isset($_SESSION['user'])) {
header('Location: LoginViewController.php');
exit();
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.