"admin", "password" => "qwerty"); session_start(); $nothingInPost = true; //этот флаг указывает, пытается ли пользователь залогиниться (что-то есть в $_POST), или только зашел на страницу. $passwordInPostRight = false; //этот флаг указывает, правильный ли пароль и логин, если POST не пуст (пользователь пытается залогинится) $login = ""; //login из $_POST или пустая строка. Используется для заполнения поля ввода, что бы пользователю не приходилось опять вводить имя пользователя if (isset($_GET['logout']) and $_GET['logout'] == 'true'): $_SESSION['logged'] = false; //если пользователь нажал Выйти, то в мы сохраняем это в сессию endif; if (!isset($_SESSION['logged'])): $_SESSION['logged'] = $passwordInPostRight; //создаем ключ в сессии, если его нет endif; if (isset($_POST['login']) && isset($_POST['password'])): //попытка залогиниться $nothingInPost = false; //значит пользователь не только зашел $login = $_POST['login']; //сохраняем логин, он, возможно пригодится для поля ввода login if (($_POST['login'] == $credentials['login']) && ($_POST['password'] == $credentials['password'])): $passwordInPostRight = true; //если пароль правильный, то записываем это в $passwordInPostRight $_SESSION['loginTimes'][] = time(); //и сохраняем время логина в сесси endif; $_SESSION['logged'] = $passwordInPostRight; //отмечаем в сессии успешность логина endif; ?>
$nothingInPost, "passwordInPostRight" => $passwordInPostRight, "login" => $login)); print_r($_SESSION); print_r($_POST); print_r($_GET); //отладочный вывод для понимания ?>