Я пытаюсь построить интранет. Я проделал большую работу, пока не понял, что когда я захожу в свою интрасеть с моего компьютера, то на моем ноутбуке открывается тот же сеанс. Это очень плохо для локальной интрасети, представьте, что администратор входит в систему, и каждый пользователь в сети внезапно может открыть интрасеть без необходимости входа.
Я использую очень простые сессии php, но по какой-то причине это не позволяет мне различать разных пользователей сети. Я пробовал несколько других примеров кодов и те же проблемы.
Вот, например, один из них:
<?php session_start(); ?>
<?php
if(isset($_SESSION['use']))
{
header("Location:home.php");
}
if(isset($_POST['login']))
{
$user = $_POST['user'];
$pass = $_POST['pass'];
if($user == "Admin" && $pass == "1234")
{
$_SESSION['use']=$user;
echo '<script type="text/javascript"> window.open("home.php","_self");</script>';
}
else
{
echo "invalid UserName or Password";
}
}
?>
<html>
<head>
<title> Login Page </title>
</head>
<body>
<form action="" method="post">
<table width="200" border="0">
<tr>
<td> UserName</td>
<td> <input type="text" name="user" > </td>
</tr>
<tr>
<td> PassWord </td>
<td><input type="password" name="pass"></td>
</tr>
<tr>
<td> <input type="submit" name="login" value="LOGIN"></td>
<td></td>
</tr>
</table>
</form>
</body>
</html>
И вот страница, на которой он идет:
<?php session_start(); ?>
<html>
<head>
<title> Home </title>
</head>
<body>
<?php
if(!isset($_SESSION['use']))
{
header("Location:Login.php");
}
echo $_SESSION['use'];
echo "Login Success";
echo "<a href='logout.php'> Logout</a> ";
?>
</body>
</html>
Любая помощь будет высоко оценен.
Я разобрался с проблемами. Прежде всего, очистите ваши куки, они очень плохо держатся. Во-вторых, если у вас есть сессия, созданная и указав пользовательский идентификатор, у вас возникнет эта проблема. Поскольку оба хоста будут использовать один и тот же идентификатор.
Других решений пока нет …