Начинаем серию уроков по разработке системы управления сайтом. Тема очень обширная, поэтому я решил разбить ее на несколько частей, чтобы подробно изложить материал с детальным комментированием каждого фрагмента кода. Начнем все по порядку, а именно с базы данных, в которой будут храниться для начала только логин и пароль, так же системой входа в систему управления сайтом и затем выходом из нее. Это все рассмотрим в первой части урока.
Создаем базу данных cms с привилегиями: имя пользователя - "root", пароль -"". В ней пока будет таблица admin_profile в которой три поля id, login и pass. Думаю по названиям достаточно понятные поля - идентификатор, логин и пароль. Возьмем за тестовую версию вход в админку и дадим ей логин и пароль: admin.
Дамп таблицы admin_profile.
-- -- Table structure for table `admin_profile` -- CREATE TABLE IF NOT EXISTS `admin_profile` ( `id` int(5) NOT NULL AUTO_INCREMENT, `login` varchar(255) NOT NULL, `pass` varchar(255) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=24 ; -- -- Dumping data for table `admin_profile` -- INSERT INTO `admin_profile` (`id`, `login`, `pass`) VALUES (1, 'admin', '21232f297a57a5a743894a0e4a801fc3');
Вынесем соединение с базой данных в отдельный файл и будем его подключать по необходимости, а по сути всегда и в каждом файле где он потребуется.
$db = mysql_connect ("localhost", "root", ""); mysql_select_db ("cms", $db); if (!$db) echo mysql_error();
Файл с которого мы должны при правильном вводе в форму входа, попасть на следующий файл в систему управления. И так, давайте рассмотрим структуру, чтобы лучше понимать какой файл за что отвечает.
Как видим, на структуре показано, что сначала мы подключаем файл bd.php - устанавливаем соединение с базой данных, если все верно, то подключаемся к файлу functions.php, в котором идет выборка полей из базы данных, если все верно, то нас перенаправляет на страницу profile.php, если не верно то на error.php, где нас попросят заново вести правильный логин и пароль!
session_start(); // Запуск сессии if(session_is_registered("register")) { // Определяем, зарегистрирована ли // переменная в сессии header("Location: profile.php"); break; // если да, то перенаправляем // на файл profile.php } include ("bd.php"); // подключаемся к базе данных
между head везде подключаем файл стилей
<link rel="stylesheet" type="text/css" href="style.css"/>
Далее идет сама форма входа
<div align="center"> <form name="form" action="profile.php" method="post"> <label>Логин</label><br> <input class="inputlp" type="text" name="login"> <br><br> <label>Пароль</label><br> <input class="inputlp" type="password" name="pass"> <br><br> <input type="submit" id="submit" class="input_button" value="Войти"> </form> </div>
Запрос к таблице admin_profile и выборка всех полей.
function profile($login,$pass) { // Создаем функцию с переменными // $login и $пароль $sql=mysql_query("SELECT * FROM admin_profile WHERE login='$login' AND pass=md5('$pass')"); // Выбираем все поля из таблицы admin_profile // где login равно $login и pass равен по md5 // $pass $res=mysql_num_rows($sql); return $res; }
Сначала проверяем, если все правильно то отображаем администратора, если нет то нам выводится сообщение об ошибке!
session_start(); // Запуск сессии include ("bd.php"); // Подключение к базе данных include ("functions.php"); // Подключаем функциональный файл if(isset($login) && isset($pass)) { // проверка на существование // переменных $login и $pass $res = profile($login,$pass); if($res == 1) { //если существуют то выводить "TRUE" $register = $login; session_register("register"); } } if(session_is_registered("register")) { include("menu.php"); // подключение меню echo"<div class='profile'> <span class='span_1'>Ваш логин: </span> <span>$register</span></div>"; // Вывод логина } else { include("error.php"); // Вывод ошибки и переброс на index.php }
menu.php
<table> <tr> <td> <a href='profile.php'>Главная</a> | <a href='logout.php'>Выход</a> </td> </tr> </table>
error.php
Вы ввели не правильный логин или пароль! <a href='index.php'>Назад</a>
При нажатии кнопки выход, запускается сессия, ищется переменная $register и записывается в $old_register, затем она уничтожается, тем самым перенаправляя нас на страницу входа index.php.
session_start(); // Запуск сессии $old_register = $register; $res = session_unregister("register"); session_destroy(); // Уничтожение сессии и header ("Location: index.php"); // переброс на файл index.php
.inputlp { border: 1px solid black; } .input_button { border: none; background: none; color: blue; font-weight: bold; } a { font-weight: bold; text-decoration: none; color: blue; } a:hover { color: red; } .error { padding-left:20px; font-size:15; color:red; } .profile { padding-top: 10px; } .span_1 { font-weight: bold; }
Спасибо всем за внимание, до следующего урока по разработке системы управления сайтом!