if (isset($_COOKIE['sid'])) {
session_id($_COOKIE['sid']);
session_start();
if (isset($_SESSION['ip']) and isset($_SESSION['browser'])) {
if ($_SESSION['ip'] !== $_SERVER['REMOTE_ADDR'] or $_SESSION['browser'] !== $_SERVER['HTTP_USER_AGENT']) {
session_abort();
}
}
}
if (isset($_SESSION['login'])) {
echo $_SESSION['login'];
} else {
if (isset($_POST['submit'])) {
$errors = array();
$stmt = $conn->prepare('SELECT id,password FROM users WHERE login = ?');
$stmt->execute(array($_POST['login']));
$user = $stmt->fetch();
if ($user) {
if ($user['password'] == $_POST['password']) {
session_id($user['id']);
session_start();
$_SESSION['ip'] == $_SERVER['REMOTE_ADDR'];
$_SESSION['browser'] = $_SERVER['HTTP_USER_AGENT'];
$_SESSION['id'] = $user['id'];
$_SESSION['login'] = $_POST['login'];
}
} else {
$errors[] = "Пользователь не найден";
}
}
}
Все хорошо или это может сломаться?
Шифрование паролей будет добавлено, про это не говорите, пока тестовый вариант)
Будет ли нормальным вариант проверять по hash, а не по ip+user agent пользователя?