Студопедия

КАТЕГОРИИ:


Архитектура-(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 – Список реквизитов

№ п\п Наименование реквизита Формат реквизита Примечание
Пользователи
  Код пользователя Числовой (3 байта)  
  Пользователь Строковый (30 байт) user
  Пароль Строковый (30 байт)  
  Адрес фотографии Строковый (70 байт) Ivan.jpg
  Адрес видео Строковый (70 байт) Nataliay.swf
Сообщения
  Код сообщения Числовой (11 байта)  
  Номер сообщения Текстовый  
  Сообщение Текстовый Привет!!!
  Контакт Текстовый masha@mail.ru
  Дата Текстовый 23/12/2012
  Время Большое целое число (10 байт) 14:15
  IP-адрес Текстовый 192.168.33.150
  Сервер Текстовый localhost
  Пользователь Строковый (30 байт) User
IP-адреса черного списка
  Номер записи Числовой (11 байта)  
  IP-адрес Текстовый 192.168.33.150

 

Следующим этапом создания локальной концептуальной модели данных состоит в определении основных объектов, которые могут интересовать пользователя. Эти объекты являются типами сущностей, входящих в модель. Описание каждой сущности приведено в Таблицу 6.2.

Таблица 6.2 - Определение типов сущностей

Имя сущности Описание Место нахождения экземпляров
Пользователи
  Сообщения Общее обозначение всех новостей пользователя. В каждой сообщения отображается информация о пользователе.
  IP-адреса черного списка Общее обозначение всех IP-адресов черного списка. IP-адрес пользователя по каким-либо причинам может быть занесен в черный список.
Сообщения
  Пользователи Общее обозначение всех пользователей. Пользователь может добавлять сообщения.
  IP-адреса черного списка Общее обозначение всех водителей предприятия. В черный список может попасть IP-адрес, находящийся в сообщения.
IP-адреса черного списка
  Пользователи Общее обозначение всего транспорта предприятия. У каждого пользователя свой IP-адрес, который может попасть в черный список.
  Сообщения Общее обозначение всех кондукторов предприятия. IP-адреса новостей могут попасть в черный список.

 

Каждая сущность обладает набором атрибутов (или свойств), характеризующих ее. Атрибуты сущностей представлены в Таблице 6.3.

 

Таблица 6.3– Атрибуты сущностей

Сущность Атрибуты Тип
  users kod int(5) auto_increment
user varchar(30)
password varchar(30)
adres_foto varchar(70)
adres_video varchar(70)
  konf unid int(11) auto_increment
number text
message text
contakts text
chislo text
vremya BIGINT(10)
ipadress text
server text
user varchar(30)
  black id int(11) auto_increment
ipadress text

 

Определяем домены атрибутов для всех атрибутов, присутствующих в модели. Доменом называется некоторое множество значений элементы, которого выбираются для присвоения значения одному или нескольким атрибутам. Можно выделить набор из четырех доменов.

Таблица 6.4 – Определение доменов атрибутов.

Имя домена Тип данных Характеристики
  int Числовой 4 байт
  BIGINT(10) Большое целое число 8 байт
  Text Текстовый 1, 2, 3 или 4 байт
  varchar Строка 65535 байт

 

Для каждой сущности устанавливается потенциальный ключ, после чего осуществляется выбор первичного ключа. Так как все кортежи в отношении по определению уникальны, в нём всегда существует хотя бы один потенциальный ключ. Каждая из сущностей однозначно определяется идентификатором (счетчиком).

Таблица 6.5 – Потенциальные и первичные ключи

Сущность Потенциальные ключи Первичный ключ
User Kod, adres_foto, adres_video, user Kod
Konf Unid, number unid
black Id, ipadress id

В нашей локальной концептуальной модели данных избыточность отсутствует. На рисунке 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] &nbsp;&nbsp Пароль=$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; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.013 сек.