КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Описание алгоритмов скриптов администраторской части
Схема взаимодействия скриптов администраторской части Архитектура разработанного web-приложения Проектирование базы данных web-приложения WEB-ПРИЛОЖЕНИЕ ДЛЯ ОБЩЕНИЯ ПОСЕТИТЕЛЕЙ INTERNET-САЙТА
На первом этапе необходимо разработать концептуальную модель данных для каждого представления, охватывающего предметную область. Каждая локальная концептуальная модель данных состоит из следующих компонентов: типы сущностей; типы связей; атрибуты и домены атрибутов; первичный ключ; альтернативный ключ; ограничения целостности. В процессе анализа данной предметной области были выявлены все пользовательские представления, которые требуются для разрабатываемого приложения. · Представление “Пользователи” · Представление “Сообщения” · Представление “IP-адреса черного списка” Каждому представлению соответствует список реквизитов таблицы 6.1. Форматы реквизитов определяем из вида информации - символьная, цифровая, дата и их длины или разрядности. Таблица 6.1 – Список реквизитов
Следующим этапом создания локальной концептуальной модели данных состоит в определении основных объектов, которые могут интересовать пользователя. Эти объекты являются типами сущностей, входящих в модель. Описание каждой сущности приведено в Таблицу 6.2. Таблица 6.2 - Определение типов сущностей
Каждая сущность обладает набором атрибутов (или свойств), характеризующих ее. Атрибуты сущностей представлены в Таблице 6.3.
Таблица 6.3– Атрибуты сущностей
Определяем домены атрибутов для всех атрибутов, присутствующих в модели. Доменом называется некоторое множество значений элементы, которого выбираются для присвоения значения одному или нескольким атрибутам. Можно выделить набор из четырех доменов. Таблица 6.4 – Определение доменов атрибутов.
Для каждой сущности устанавливается потенциальный ключ, после чего осуществляется выбор первичного ключа. Так как все кортежи в отношении по определению уникальны, в нём всегда существует хотя бы один потенциальный ключ. Каждая из сущностей однозначно определяется идентификатором (счетчиком). Таблица 6.5 – Потенциальные и первичные ключи
В нашей локальной концептуальной модели данных избыточность отсутствует. На рисунке 6.1 приведена локальная концептуальная модель данных. Рисунок 6.1 – Локальная концептуальная модель данных На физическом уровне база данных представляет собой папку KONFERENCES, находящуюся в папке data сервера баз данных MYSQL. Таблица users базы данных на физическом уровне представляет собой три файла: users.frm, users.MYD, users.MYI. Таблица konf базы данных на физическом уровне представляет собой три файла: konf.frm, konf.MYD, konf.MYI. Таблица black базы данных на физическом уровне представляет собой три файла: black.frm, black.MYD, black.MYI. Все эти папки находятся в папке KONFERENCES.
Структура web-приложения представляет собой набор файлов-скриптов, содержащихся в каталогах Рис.6.2. Рисунок 6.2 – Структура web-приложения Программная реализация скриптов была разделена на 6 частей: ADM, ADM_FORUM, FORUM, FOTO_USERS, USERS, VIDEO_USERS. Первая отвечает за ввод и редактирование информации находящейся в базе данных - администраторская часть сайта. Вторая часть отвечает за редактирование информации находящейся в базе данных – администраторская часть форума. Третья часть отвечает за внесение информации в отдельные таблицы базы данных – администраторская часть сайта. Четвертая часть отвечает за хранение фотографий пользователей. Пятая часть генерирует страницы раздела сайта. Скрипты этой части отвечают за представление информации на сайте – пользовательская часть сайта. Шестая часть отвечает за хранение видео пользователей. Скрипты администраторской части содержатся в папке ADM, пользовательская часть – USERS и FORUM, администраторская часть форума – ADM_FORUM. Каждая из указанных папок содержит в свою очередь файлы, содержащие коды скриптов создания форм просмотра, добавления, изменения данных и т.д.. Рисунок 6.3 – Файлы скриптов администраторской части (папка ADM) Скрипты папки ADM позволяют войти как администратор сайта. Администратор имеет возможность создать, удалить или просмотреть таблицу пользователей, удалить пользователя, перейти к администрированию форума или сменить свой пароль. Также папка ADM содержит папку с картинками для приложения части администратора. (Рис.6.3) Рисунок 6.4 –Файлы скриптов пользовательской части (папка USERS) Скрипты папки USERS позволяют пользователям входить на форум, регистрироваться и изменять свои данные. Также папка USERS содержит папку с картинками для приложения части пользователь. (Рис.6.4) Рисунок 6.5 –Файлы скриптов администраторской части форума (папка ADM_FORUM) Скрипты папки ADM_FORUM позволяют создавать, удалять и просматривать таблицу адресов черного списка по ip-адресу или логину; создавать, удалять и очищать таблицу новостей, удалять новости старше заданного количества дней; удалять, отправлять в черный список по ip-адресу или логину и изменять сообщения пользователей сайта. Также папка ADM_FORUM содержит папку с картинками для приложения части пользователь. (Рис.6.5) Рисунок 6.6 –Файлы скриптов пользовательской части форума (папка FORUM) Скрипты папки FORUM позволяют пользователям добавлять свои сообщения на форум, читать и отвечть на сообщения других пользователей сайта. Также папка FORUM содержит папку с картинками для приложения части пользователь. (Рис.6.6) Данные скрипты содержат вызовы SQL запросов для внесения изменений в таблицы базы данных, и формы представления, ввода и изменения данных.
На схеме Рис. 6.7 представлено взаимодействие скриптов администраторской части web-приложения. Рисисунок 6.7 – Схема взаимодействия скриптов администраторской части приложения Из схемы видно, что администраторская часть приложения начинается с файла index.php, где администратор должен ввести логин и пароль. После правильного ввода логина и пароля переходим на страницу администрирование пользователей файл index_adm.php. Администратору предоставляется возможность создать (файл sozdat.php), удалить (файл udalit.php) или просмотреть (файл prosmotr.php) таблицу пользователей, удалить пользователя (файл udalit_user_do.php), перейти к администрированию форума (файл admin_konf.php, который находится в папке ADM_FORUM), сменить пароль (файл smenit_passw.php) или выйти со страницы (файл exit.php). Для удаления пользователя необходимо подтверждение, файл udalit_user_do1.php и удаление файл udalit_user.php. Для удаления таблицы пользователей необходимо подтверждение,файл udalit_do.php.
Подключаемый файл info.dan используется во всех частях форума, он предназначен для соединения с сервером, базой данных, получения значений куки из файлов куки. Скрипт выполняет следующие действия: Подключаем заголовочный файл include("okno.dan"); $host="sql-4.ayola.net"; // Cервер $user="sforum615"; // Пользователь $password="su6wiw4fll"; // Пароль $BD="sforum615"; // База данных $tab_users="users"; // Таблица с информацией о пользователях $tab_password="password"; Соединяемся с сервером, передавая имя пользователя и пароль mysql_connect($host, $user, $password) or okno("Подключение к серверу БД", "/ADM/PICTURES/pictures_adm_users/image_fon.jpg", "", "Ошибка", "Не могу подключиться к серверу базы данных", "", "", 1); Выбираем базу данных mysql_select_db($BD) or okno("Выбор БД", "/ADM/PICTURES/pictures_adm_users/ image_fon.jpg", "", "Ошибка", "Не могу выбрать базу данных на сервере", "", "", 1); $adm=md5("angelina"); Получаем пароль из таблицы пароля администратора $q=mysql_query("select passwd from $tab_password") or okno("Получение пароля администратора", "/ADM/PICTURES/pictures_adm_users/image_fon.jpg", "", "Ошибка", "Ошибка обращения к таблице паролей", "", "", 1); $row=mysql_fetch_row($q); $ps=$row[0]; Получение значений COOKIE из файлов COOKIE if (isset($_COOKIE["login"])) $login = $_COOKIE["login"]; if (isset($_COOKIE["pass"])) $pass = $_COOKIE["pass"]; Подключаемый файл okno.dan используется в заголовочном файле info.dan, в нем реализованы функции для вывода сообщений. Скрипт выполняет следующие действия: Функци, выдающая сообщения function okno($title1, $fone1, $tekst_str, $zagolovok, $tekst, $adres, $name_button, $ostanov) { print "<html> <head>"; print "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=windows-1251\">"; print "<title>$title1</title>"; print "</head> <body background='$fone1' link=#993300 alink=#FF0000 vlink=#800080>"; print "<div align=center><br><br><br><br><font color=red><H2>$tekst_str</H2></font> <br><br><br>"; print "<form metod=POST action='$adres' style=\"width: 300\">"; print "<table border=\"1\" bgcolor=\"#0000ff\">"; print "<tr><td style=\"color: #0000FF\" bgcolor=\"#000080\"><font color=\"#FFFFFF\">"; print $zagolovok; print "</font></td></tr>"; print "<tr><td bgcolor=\"#0000FF\"><p align=\"center\"> <font color=\"FFFFFF\" size=\"5\">"; print $tekst; print "<BR><BR></font>"; print "<p align=\"center\"><font color=\"#0000FF\"> <input type=\"submit\" value='$name_button' name=\"Vozvrat\" style=\"color: #0000FF; background-color: #FFFFFF; font-size:10pt; font-weight:bold\"> </font></p>"; print "</td></tr></table></form></div></body></html>"; if ($ostanov==1) die(); }; Функци, выдающая сообщения function okno2($title1, $fone1, $tekst_str,$zagolovok, $tekst, $adres1, $adres2, $name_button1, $name_button2) { print "<html> <head>"; print "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=windows-1251\">"; print "<title>$title1</title>"; print "</head> <body background='$fone1' link=#993300 alink=#FF0000 vlink=#800080>"; print "<div align=center><br><br><br><br><font color=red><H2>$tekst_str</H2></font> <br><br><br>"; print "<form metod=POST action='$adres1' style=\"width: 300\">"; print "<table border=\"1\" bgcolor=\"#0000ff\">"; print "<tr><td style=\"color: #0000FF\" bgcolor=\"#000080\"><font color=\"#FFFFFF\">"; print $zagolovok; print "</font></td></tr>"; print "<tr><td bgcolor=\"#0000FF\"><p align=\"center\"> <font color=\"FFFFFF\" size=\"5\">"; print $tekst; print "</font>"; print "<p align=\"center\"><font color=\"#0000FF\"> <input type=\"submit\" value='$name_button1' name=\"Delete\" style=\"color: #0000FF; background-color: #FFFFFF; font-size:10pt; font-weight:bold\"> </font></p></form>"; print "<form metod=POST action='$adres2' style=\"width: 300\">"; print "<p align=\"center\"><font color=\"#0000FF\"> <input type=\"submit\" value='$name_button2' name=\"Vozvrat\" style=\"color: #0000FF; background-color: #FFFFFF; font-size:10pt; font-weight:bold\"> </font></p></td></tr></table></form></div></body></html>"; }; Выполнение администраторской части системы начинается с файла index.php, которыйсоздает форму ввода логина и пароля администратора. Он выполняет следующие действия: Удаляет куки, т.к. значения переменных пусты. setcookie("login","",time()-7*24*60*60, '/', false, 0); setcookie("pass","",time()-7*24*60*60, '/', false, 0); 1 параметр -имя переменной; 2-значение переменной; 3- время жизни переменной (целое число),если не указано, то до конца сессии(кол-во секунд прошедших с начала эпохи Unix); 4-путь к Cookie строке; 5 - домен (строка). В качестве домена имя хоста, с которого был установлен; 6-передача куки через защищенное https-соединение. Формирует html страницу с формой, ссылающуюся на скрипт index_adm.php, который будет обрабатывать введенные в элементы формы логин и пароль. print "<form method=\"POST\" action=\"index_adm.php\" >"; <input type='text' name='login' size=50> <input type='password' name='pass' size=50> <input type=\"submit\" value=\"Войти\" name=\"B1\" style=\"color: #0000FF; background-color: #DDDDDD; font-size:10pt; font-weight:bold; width:180px; height:35px; border-radius:10px; background-image:-moz-linear-gradient(top,rgba(0,0,0,0),rgba(0,0,0,0.5))\"> <input type=\"reset\" value=\"Сброс\" name=\"B2\" style=\"color: #0000FF; background-color: #DDDDDD; font-size:10pt; font-weight:bold; width:300px; height:35px; border-radius:10px; background-image:-moz-linear-gradient(top,rgba(0,0,0,0),rgba(0,0,0,0.5)) \">"; print "</form>"; Для кнопок submit и reset применены специальные стили для градиентной заливки и закругления углов. Скрипт index_adm.php формирует основную страницу по администрированию системы. В файле содержатся ссылки на php скрипты, выполняющие основные администраторские функции. Если скрипт вызван из скрипта index.php, то он получает переменные login и pass из формы методом Post: if($_SERVER['REQUEST_METHOD']=='POST') { $login = $_POST['login']; $pass = $_POST['pass']; Создает COOKIE login и pass: setcookie("login",$login, false, '/', false, 0); setcookie("pass",$pass, false, '/', false, 0); } Если мы вернулись к этому скрипту с какой-то страницы, то проверяем существуют ли куки login и pass и получаем их значения из массива $_COOKIE: if (isset($_COOKIE["login"])) { $login = $_COOKIE["login"];} if (isset($_COOKIE["pass"])) { $pass = $_COOKIE["pass"];} Если получены неверные значения, то перенаправляем пользователя на страницу index.php: if (!((md5($login)==$adm) && (md5($pass)==$ps))) { Header("Location: index.php");} Если значение логина и пароля верные, то генерируем страницу администрирования пользователя системы со ссылками на скрипты выполнения основных операций: Создать таблицу пользователей, Удалить таблицу пользователей, Просмотреть информацию о пользователях, Удалить информацию о пользователе, Перейти к администрированию форума, Сменить пароль, Выход. <a href='exit.php'> Выход </a> <a href=\"sozdat.php\">Создать таблицу пользователей</a> <a href=\"udalit_do.php\">Удалить таблицу пользователей</a> <a href=\"prosmotr.php\">Просмотреть информацию о пользователях</font></a> <a href=\"udalit_user_do.php\">Удалить информацию о пользователе </a>"; <a href=\"../ADM_FORUM/admin_konf.php?parametr=nachalo&login=$a&password=$b\"> Перейти к администрированию форума </a> <a href=\"smenit_passw.php\">Сменить пароль </a> Скрипт exit.php позволяет пользователю выйти со страницы администратора, для этого в скрипте выполняются следующие действия: Если получены неверные значения, то перенаправляем пользователя на страницу index.php, иначе создаем куки логин и пароль и формируем html страницу с возвратом на страницу входа администратора. if (!((md5($login)==$adm) && (md5($pass)==$ps))) { Header("Location: index.php"); } else { setcookie("login","", false, '/', false, 0); setcookie("pass","", false, '/', false, 0); print "<form metod=POST action=\"index.php\" style=\"width: 300\">"; <input type=\"submit\" value=\"Вернуться к входу в админку\" name=\"Vozvrat\"> print "</form>"; Скрипт sozdat.php создает таблицу пользователей. Для этого в скрипте мы выполняем следующие действия: Получаем значение COOKIE из файлов COOKIE. Если мы вернулись к этому скрипту с какой-то страницы, то проверяем существуют ли куки login и pass и получаем их значения из массива $_COOKIE: if (isset($_COOKIE["login"])) $login = $_COOKIE["login"]; if (isset($_COOKIE["pass"])) $pass = $_COOKIE["pass"]; Если значения логина и пароля, полученные из файлов куки не совпадают с логином и паролем администратора, то скрипт перенаправляет пользователя на страницу ввода логина и пароля. if (!((md5($login)==$adm) && (md5($pass)==$ps))) { Header("Location: index.php"); } Если значение логина и пароля верные, то связываемся с сервером баз данных c указанным именем и паролем. Выбираем базу данных на сервере, для этого подключаем файл info.dan Генерируем html страницу. Выполняем SQL запрос на создание таблицы mysql_query("CREATE TABLE $tab_users( kod int(3) NOT NULL auto_increment, user varchar(30), password varchar(30), adres_foto varchar(70), adres_video varchar(70), UNIQUE KEY kod(`kod`)) TYPE=MyISAM"); Если таблица еще не была создана, то вызываем функцию okno (), которая формируется html страница с сообщением об успешном создании таблицы с ссылкой на предыдущую страницу. if(mysql_errno()==0){ okno("Пользователи", "PICTURES/pictures_adm_users/image_fon.jpg", "", "Сообщение", "Таблица \"Пользователи\" создана успешно. <BR><BR>", "index_adm.php", "Вернуться на главную страницу", "0"); } Если таблица уже была создана, то вызываем функцию okno (), которая формируется html страница с сообщением об ошибке создания таблицы со ссылкой на возврат на предыдущую страницу. else { okno("Пользователи", "PICTURES/pictures_adm_users/image_fon.jpg", "<div align=center><br><br><br><font color=red><H2>ОШИБКА!</H2></font><br><br>", "Ошибка", "Ошибка создания таблицы пользователей или таблица уже создана.", "index_adm.php", "Вернуться на главную страницу", "0"); } } Скрипт udalit_do.php выводит страницу с сообщением о подтверждении удаления таблицы пользователей. Для этого в скрипте мы выполняем следующие действия: Подключаем файл info.dan для получения значения COOKIE из файлов COOKIE. Если мы вернулись к этому скрипту с какой-то страницы, то проверяем существуют ли куки login и pass и получаем их значения из массива. Если значение логина и пароля верные, то связываемся с сервером баз данных с указанным именем и паролем if (!((md5($login)==$adm) && (md5($pass)==$ps))) { Header("Location: index.php"); } Если значение логина и пароля верные, то связываемся с сервером баз данных c указанным именем и паролем else { Вызываем функцию okno2(), которая формирует html страницу с сообщением о подтверждении удаления таблицы пользователей и со ссылкой на предыдущую страницу. okno2("Пользователи", "PICTURES/pictures_adm_users/image_fon.jpg", "", "Сообщение", "Удаление таблицы \"Пользователи\". ", "udalit.php", "index_adm.php", "Действительно удалить таблицу?", "Вернуться на главную страницу"); } После подтверждения удаления таблицы пользователей скриптом udalit.php формируется страница с сообщением об успешном удалении таблицы. Для этого в скрипте выполняются следующие действия: Подключаем заголовочные файлы include("../info.dan"); Как и в вышеприведенных скриптах проверяем корректность логина и пароля администратора с использованием куки. Если таблица уже была создана, то вызываем функцию okno(), которая формируем html страницу с сообщением об ошибке создания таблицы со ссылкой на возврат на предыдущую страницу. else { Если таблицы не существует, то связываемся с сервером баз данных c указанным именем и паролем. Выбираем базу данных на сервере и генерируем html страницу. Формируем запрос на удаление таблицы mysql_query("drop table $tab_users"); Если запрос выполнен успешно, то вызываем функцию okno() для формирования страницы с сообщением об успешном удалении таблицы со ссылкой на главную страницу. if(mysql_errno()==0){ okno("Пользователи", "PICTURES/pictures_adm_users/image_fon.jpg", "", "Сообщение", "Таблица \"Пользователи\" успешно удалена. <BR><BR>", "index_adm.php", "Вернуться на главную страницу", "0"); } Если таблицы в базе данных нет, то вызываем функцию okno() для формирования страницы с сообщением об ошибке удаления таблицы. else { okno("Пользователи", "PICTURES/pictures_adm_users/image_fon.jpg", "", "Ошибка", "Ошибка удаления таблицы пользователей или таблица уже удалена.", "index_adm.php", "Вернуться на главную страницу", "0"); } } Скрипт prosmotr.php выводит страницу с таблицей пользователей для просмотра информации о пользователях, зарегистрированных на сайте. Скрипт prosmotr.php выполняет следующие действия: Подключаем заголовочные файлы include ("..\info.dan"); Как и в вышеприведенных скриптах проверяем корректность логина и пароля администратора с использованием куки. Если значение логина и пароля, полученные из файлов COOKIE совпадают с логином и паролем администратора, то else { Связываемся с сервером баз данных. Выбираем базу данных на сервере и формируем html страницу с таблицей пользователей Заголовок таблицы print "<div align=center> Информация о пользователях"; Начинаем формирование таблицы с полями Код, Пользователь, Пароль, Имя Фото, Фото, Имя видео: print "<BR><BR> <table align=center border=1 width=80%> <tr>"; print "<td align=center bgcolor=\"#0000FF\"> Код </td>"; print "<td align=center bgcolor=\"#0000FF\"> Пользователь </td>"; print "<td align=center bgcolor=\"#0000FF\"> Пароль </td>"; print "<td align=center bgcolor=\"#0000FF\"> Имя фото </td>"; print "<td align=center bgcolor=\"#0000FF\"> Фото </td>"; print "<td align=center bgcolor=\"#0000FF\"> Имя видео </td></tr>"; Посылаем SQL запрос на выборку всех данных из таблицы $q=mysql_query("select * from $tab_users") or okno("Обращение к таблице c информацией о пользователях", "/ADM/PICTURES/pictures_adm_users/image_fon.jpg", "", "Ошибка", "Ошибка обращения к таблице c информацией о пользователях", "", "", 1); Выводим записи в виде таблицы While ($stroka=mysql_fetch_row($q)) { print "<tr><td align=center ><font color=\"#000080\" size=4> $stroka[0] </font> </td>"; print "<td align=center ><font color=\"#000080\" size=4> $stroka[1] </font> </td>"; print "<td align=center ><font color=\"#000080\" size=4> $stroka[2] </font> </td>"; Присваиваем переменной adres_foto имя файла с фото $adres_foto="../FOTO_USERS/".$stroka[3]; Выводим название файла фото в виде ссылки print "<td align=center > <a href='$adres_foto'>$stroka[3]</a> </td>"; Выводим фотографию пользователя print "<td > <a href='$adres_foto'> <img border=\"0\" src='$adres_foto' > </a></td>"; Присваиваем переменной adres_video имя файла с видео $adres_video="../VIDEO_USERS/".$stroka[4]; Если имя файла с видео загружено, то выводим имя видео в виде ссылки if ($stroka[4]!=''){ print "<td> <a href='$adres_video'>$stroka[4]</a> </td>"; } Если пользователь файл с видео не загрузил или удалил, то выводим предупреждение о том, что у пользователя файла с видео нет else { print "<td> <font color=\"#000080\" size=4> нет видео </font> </td>"; } } Также на странице есть ссылка для возврата на главную страницу print "<BR><a href=\"index_adm.php\"> Вернуться на главную страницу </a>"; print "</body></html>"; } Скрипт udalit_user_do.php выводит страницу удаления информации о пользователях и выполняет следующие действия: Подключаем заголовочные файлы include ("..\info.dan"); Как и в вышеприведенных скриптах проверяем корректность логина и пароля администратора с использованием куки. Если значение логина и пароля, полученные из файлов COOKIE совпадают с логином и паролем администратора, то else { Связываемся с сервером баз данных. Выбираем базу данных на сервере Формируем html страницу удаления пользователей с выпадающим списком, на которой необходимо выбрать пользователя и пройти по ссылкам Удалить или вернуться на Главную страницу. Делаем запрос к таблице пользователей на выборку всех записей и заполняем выпадающий список списком пользователей $s="select * from $tab_users"; $q=mysql_query($s) or okno("Обращение к таблице c информацией о пользователях", "/ADM/PICTURES/pictures_adm_users/image_fon.jpg", "", "Ошибка", "Ошибка обращения к таблице c информацией о пользователях", "", "", 1); print "<p align=\"center\"><select size=\"1\" name=\"user\" style='BACKGROUND:#0033CC; COLOR:WHITE;font-size:18px; font-style:italic; font-weight:bold;'>"; Выводим записи в виде таблицы While ($stroka=mysql_fetch_row($q)) { print "<option value='$stroka[0]'>Пользователь=$stroka[1]   Пароль=$stroka[2]</option>"; } print "</select></td>"; Также на странице есть 2 ссылки на удаление и возврат на главную странцу. На странице расположено несколько рисунков print "<img border=\"0\" src=\"PICTURES/pictures_adm_users/image_8.JPG\" width=\"120\" height=\"113\" align=\"center\"></td>"; print "<img border=\"0\" src=\"PICTURES/pictures_adm_users/image_9.JPG\" width=\"120\" height=\"113\" align=\"center\"></td></tr>"; print "<img border=\"0\" src=\"PICTURES/pictures_adm_users/image_6.JPG\" width=\"120\" height=\"113\" align=\"center\"></td>"; } При переходе по ссылке Удалить срабатывает скрипт udalit_user_do1.php, которыйформирует страницу подтверждения удаления информации о пользователе и выполняет следующие действия: Подключаем заголовочные файлы include ("..\info.dan"); Как и в вышеприведенных скриптах проверяем корректность логина и пароля администратора с использованием куки. Если значение логина и пароля, полученные из файлов COOKIE совпадают с логином и паролем администратора, то else { Связываемся с сервером баз данных. Выбираем базу данных на сервере Присваиваем переменной f_user значение переданное по методу $_POST $f_user = $_POST['user']; Делаем запрос к таблице пользователей на выборку записи по коду пользователя f_user $q=mysql_query("select * from $tab_users where kod='$f_user'") or okno("Выбор записи из таблицы пользователей", "/ADM/PICTURES/pictures_adm_users/image_fon.jpg", "", "Ошибка", "Не смогли выбрать запись из таблицы пользователей!", "", "", 1); $stroka=mysql_fetch_row($q); $polzovatel=$stroka[1]; Формируем html страницу удаления пользователя со ссылками удалить или вернуться на главную страницу. На странице также расположено несколько картинок print "<img border=\"0\" src=\"PICTURES/pictures_adm_users/image_8.JPG\" width=\"120\" height=\"113\" align=\"center\">"; print "<img border=\"0\" src=\"PICTURES/pictures_adm_users/image_9.JPG\" width=\"120\" height=\"113\" align=\"center\">"; print "<img border=\"0\" src=\"PICTURES/pictures_adm_users/image_6.JPG\" width=\"120\" height=\"113\" align=\"center\">"; После подтверждения удаления пользователя срабатывает скрипт udalit_user.php, который удаляет пользователя из таблицы и формирует страницу с сообщением об успешном удалении пользователя Подключаем заголовочные файлы include ("..\info.dan"); Как и в вышеприведенных скриптах проверяем корректность логина и пароля администратора с использованием куки. Если значение логина и пароля, полученные из файлов COOKIE совпадают с логином и паролем администратора, то else { Связываемся с сервером баз данных c указанным именем и паролем. Выбираем базу данных на сервере Получаем код пользователя $f_user = $_POST['user']; Удаляем файл фото с сервера. Для этого выбираем имя файла с фото из таблицы пользователей $q=mysql_query("select * from $tab_users where kod='$f_user'") or okno("Выбор запись из таблицы пользователей", "/ADM/PICTURES/pictures_adm_users/image_fon.jpg", "", "Ошибка", "Не смогли выбрать запись из таблицы пользователей!", "", "", 1); $stroka=mysql_fetch_row($q); Получаем имя пользователя и имя файла с фото $polzovatel=$stroka[1]; $adres_foto=$stroka[3]; Если флаг f=0, то файл не удален с сервера, если флаг f=1, то удален с сервера $f=0; if (unlink("..\\FOTO_USERS\\$adres_foto")) { $f=1; } Удаление файла фото с сервера завершено. Для удаления файла с видео с сервера выбираем имя файла с видео из таблицы пользователей $q=mysql_query("select * from $tab_users where kod='$f_user'") or okno("Выбор запись из таблицы пользователей", "/ADM/PICTURES/pictures_adm_users/image_fon.jpg", "", "Ошибка", "Не смогли выбрать запись из таблицы пользователей!", "", "", 1); $stroka=mysql_fetch_row($q); $adres_video=$stroka[4]; Если флаг flag=0, то файл не удален с сервера, если флаг flag=1, то удален с сервера $flag=0; if (unlink("..\\VIDEO_USERS\\$adres_video")) { $flag=1; } Удаление файла видео с сервера завершено. Формируем запрос на удаление информации о пользователе из таблицы базы данных mysql_query("delete from $tab_users where kod='$f_user'") or okno("Удаление записей из таблицы пользователей", "/ADM/PICTURES/pictures_adm_users/image_fon.jpg", "", "Ошибка", "Не смогли логически удалить запись из таблицы пользователей", "", "", 1); mysql_query("optimize table $tab_users") or okno("Удаление записей из таблицы пользователей", "/ADM/PICTURES/pictures_adm_users/image_fon.jpg", "", "Ошибка", "Не смогли физически удалить запись в таблице пользователей!", "", "", 1); Формируем html страницу с сообщением об успешном удалении пользователя. Если фотография пользователя была загружена на сервер, то выдается сообщение об удалении файла фотографии с сервера if ($f==1) { print "Фотография пользователя удалена с сервера<BR><BR>";} Если файл с фотографией пользователя не была загружен на сервер, то выдается сообщение об отсутствии файла с фотографией на сервере else { print "Фотография пользователя отсутствует на сервере<BR><BR>";} Если файл с видео пользователя было загружено на сервер, то выдается сообщение об удалении файл с видео с сервера if ($flag==1) { print "Видео пользователя удалено с сервера<BR><BR>";} Если файл с видео пользователя не была загружена на сервер, то выдается сообщение об отсутствии файла видео на сервере else { print "Видео пользователя отсутствует на сервере<BR><BR>";} print "<td rowspan=\"3\" width=20%><img border=\"0\" src=\"PICTURES/pictures_adm_users/image_6.JPG\" width=\"200\" height=\"200\"></td></tr>"; Также на странице расположены ссылки для возврата к удалению или возврата на главную страницу. При переходе по ссылке Сменить пароль срабатывает скрипт smenit_passw.php, которыйформирует страницу смены пароля администратороми выполняет следующие действия: Подключаем заголовочные файлы include ("..\info.dan"); Как и в вышеприведенных скриптах проверяем корректность логина и пароля администратора с использованием куки. Если значения логина и пароля, полученные из файлов куки не совпадают с логином и паролем администратора, то скрипт перенаправляет пользователя на страницу ввода логина и пароля. if (!((md5($login)==$adm) && (md5($pass)==$ps))) { Header("Location: index.php"); } Если значение логина и пароля верные, то связываемся с сервером баз данных c указанным именем и паролем. Выбираем базу данных на сервере, для этого подключаем файл info.dan Генерируем html страницу с формой для ввода старого и нового пароля с подтверждением. print "<form method=\"POST\" action=\"smenit_passw1.php\" >"; print "<td> Старый пароль </td>"; print "<td> <input type='text' name='old_pass' size=50> </td>"; print "<td>Новый пароль </td>"; print "<td> <input type='password' name='new_pass' > </td>"; print "<td>Подтвердить пароль </td>"; print "<td> <input type='password' name='new_pass1' size=50></td>"; <input type=\"submit\" value=\"Изменить\" name=\"B1\" > print "<input type=\"reset\" value=\"Сброс\" name=\"B2\"> </form>"; После подтверждения смены пароля срабатывает скрипт smenit_passw1.php, который формирует страницу с сообщением об успешности смены пароля или о проблемах, если таковы имеются. Подключаем заголовочные файлы include ("..\info.dan"); Как и в вышеприведенных скриптах проверяем корректность логина и пароля администратора с использованием куки. Если значения логина и пароля, полученные из файлов куки не совпадают с логином и паролем администратора, то скрипт перенаправляет пользователя на страницу ввода логина и пароля. if (!((md5($login)==$adm) && (md5($pass)==$ps))) { Header("Location: index.php"); } Если значение логина и пароля верные, то связываемся с сервером баз данных c указанным именем и паролем. Выбираем базу данных на сервере. Получаем по методу POST старый пароль и новый пароль с подтвержением $old_pass = $_POST['old_pass']; $new_pass = $_POST['new_pass']; $new_pass1 = $_POST['new_pass1']; Получаем старый пароль из базы данных, выводим записи в виде таблицы $old_pass_base=$ps; Проверяем, если пользователь ввел старый пароль и новый совпадает с подтверждением, if (md5($old_pass)==$old_pass_base) { if ($new_pass==$new_pass1) { $new_pass_md5=md5($new_pass); то формируем запрос на занесение нового пароля в таблицу паролей mysql_query("update $tab_password set passwd='$new_pass_md5'") or okno("Сохранение нового пароля", "PICTURES/pictures_adm_users/image_fon.jpg", "", "Ошибка", "Ошибка сохранения нового пароля", "", "", 1); Меняем пароль в куках setcookie("pass",$new_pass, false, '/', false, 0); $s= "Пароль ".$old_pass."<BR> успешно изменен на <BR> пароль ".$new_pass; Вызываем функцию okno2, которая формирует сообщение об успешной смене пароля okno2("Изменение пароля администратора", "PICTURES/pictures_adm_users/image_fon.jpg", "", "Сообщение", $s, "smenit_passw.php", "index_adm.php", "Вернуться к изменению пароля", "Вернуться на главную страницу"); } else { Если новый пароль не совпал с подтверждением, вызываем функцию okno2, которая формирует сообщение о несовпадении паролей okno2("Изменение пароля администратора", "PICTURES/pictures_adm_users/image_fon.jpg", "", "Ошибка", "Новый пароль не совпал с подтверждением", "smenit_passw.php", "index_adm.php", "Вернуться к изменению пароля", "Вернуться на главную страницу"); } } else { Если администратор ввел неверно старый пароль, вызываем функцию okno2, которая формирует сообщение о том, что введен неверный пароль okno2("Изменение пароля администратора", "PICTURES/pictures_adm_users/image_fon.jpg", "", "Ошибка", "Старый пароль введен неправильно", "smenit_passw.php", "index_adm.php", "Вернуться к изменению пароля", "Вернуться на главную страницу"); } } Скрипт admin_konf.php будет описан в разделе 6.8.
Дата добавления: 2015-07-02; Просмотров: 496; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |