Есть небольшой скрипт обычной авторизации на 3 файлах login.php Код (Text): <?php # Функция для генерации случайной строки function generateCode($length=6) { $chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPRQSTUVWXYZ0123456789"; $code = ""; $clen = strlen($chars) - 1; while (strlen($code) < $length) { $code .= $chars[mt_rand(0,$clen)]; } return $code; } # Если есть куки с ошибкой то выводим их в переменную и удаляем куки if (isset($_COOKIE['errors'])){ $errors = $_COOKIE['errors']; setcookie('errors', '', time() - 60*24*30*12, '/'); } # Подключаем конфиг include 'conf.php'; if(isset($_POST['submit'])) { # Вытаскиваем из БД запись, у которой логин равняеться введенному $data = mysql_fetch_assoc(mysql_query("SELECT users_id, users_password FROM `users` WHERE `users_login`='".mysql_real_escape_string($_POST['login'])."' LIMIT 1")); # Соавниваем пароли if($data['users_password'] === md5(md5($_POST['password']))) { # Генерируем случайное число и шифруем его $hash = md5(generateCode(10)); # Записываем в БД новый хеш авторизации и IP mysql_query("UPDATE users SET users_hash='".$hash."' WHERE users_id='".$data['users_id']."'") or die("MySQL Error: " . mysql_error()); # Ставим куки setcookie("id", $data['users_id'], time()+60*60*24*30); setcookie("hash", $hash, time()+60*60*24*30); # Переадресовываем браузер на страницу проверки нашего скрипта header("Location: check.php"); exit(); } else { print "Вы ввели неправильный логин/пароль<br>"; } } ?> <form method="POST"> Логин <input name="login" type="text"><br> Пароль <input name="password" type="password"><br> <input name="submit" type="submit" value="Войти"> </form> <?php # Проверяем наличие в куках номера ошибки if (isset($errors)) {print '<h4>'.$error[$errors].'</h4>';} ?> check.php Код (Text): <?php # подключаем конфиг include 'conf.php'; # проверка авторизации if (isset($_COOKIE['id']) and isset($_COOKIE['hash'])) { $userdata = mysql_fetch_assoc(mysql_query("SELECT * FROM users WHERE users_id = '".intval($_COOKIE['id'])."' LIMIT 1")); if(($userdata['users_hash'] !== $_COOKIE['hash']) or ($userdata['users_id'] !== $_COOKIE['id'])) { setcookie('id', '', time() - 60*24*30*12, '/'); setcookie('hash', '', time() - 60*24*30*12, '/'); setcookie('errors', '1', time() + 60*24*30*12, '/'); header('Location: login.php'); exit(); } } else { setcookie('errors', '2', time() + 60*24*30*12, '/'); header('Location: login.php'); exit(); } ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" /> <title></title> </head> <body> hello! </body> </html> Подскажите пожалуйста как объединить 2 файла, например что бы на login.php была форма авторизации и когда вошел он не перекидывал на другой файл а просто убирал форму и показывал например личный кабинет до тех пока не выйдет пользователь код выхода: Код (Text): <form action="" method="post"><input type='submit' name='exit' value='Выйти'/></form> <?php if($_REQUEST['exit']) { setcookie('id', '', time() - 60*60*24*30, '/'); setcookie('hash', '', time() - 60*60*24*30, '/'); header('Location: login.php'); exit(); } ?>
Сейчас если заходишь на файл login.php там показывается авторизация, если на чек заходишь там авторизован, просто не как не могу понять как в 1 файл это все обьединить
Для начала перестаньте говорить «заходишь на файл». Грубо говоря, при открытии страниц выводишь файл с формой, если не авторизован, и обычный для них контент, если авторизован. --- Добавлено --- Чтобы сто раз не клонировать один и тот же код, используете единую точку входа для раздела ЛК или для сайта в целом.