Пояснительная записка (WEB-сайт для Института международного сотрудничества Дальневосточного государственного университета путей сообщения), страница 6

2020-10-05СтудИзба

Описание файла

Файл "Пояснительная записка" внутри архива находится в следующих папках: WEB-сайт для Института международного сотрудничества Дальневосточного государственного университета путей сообщения, Ким Е.Д. Документ из архива "WEB-сайт для Института международного сотрудничества Дальневосточного государственного университета путей сообщения", который расположен в категории "". Всё это находится в предмете "дипломы и вкр" из 8 семестр, которые можно найти в файловом архиве ДВГУПС. Не смотря на прямую связь этого архива с ДВГУПС, его также можно найти и в других разделах. .

Онлайн просмотр документа "Пояснительная записка"

Текст 6 страницы из документа "Пояснительная записка"

Таблица «Вопросы директору» содержит следующие поля:

– ID вопроса (тип SMALLINT);

– Имя (тип VARCHAR);

– Отчество (тип VARCHAR);

– E-mail (тип VARCHAR);

– Тема вопроса (тип TEXT);

– Вопрос (тип TEXT);

– Дата подачи заявки (тип DATE).

Таблица «Заявки на регистрацию в международный клуб»:

– ID заявки (тип SMALLINT);

– Имя по-русски (тип VARCHAR);

– Фамилия по-русски (тип VARCHAR);

– Имя по-английски (тип VARCHAR);

– Фамилия по-английски (тип VARCHAR);

– Выбранный блок интересов (тип TEXT);

– E-mail (тип VARCHAR);

– Номер телефона (тип VARCHAR);

– Дата отправки заявки (тип DATE).

Таблица «Новости»:

– ID новости (тип SMALLINT);

– Заголовок (тип TEXT);

– Краткое описание (тип TEXT);

– Дата публикации (тип DATE);

– Путь к картинке новости (тип VARCHAR).

Таблица «Сотрудники»:

– ID сотрудника (тип SMALLINT);

– Должность (тип TEXT);

– Имя (тип VARCHAR);

– Фамилия (тип VARCHAR);

– Отчество (тип VARCHAR);

– Рабочий телефон (тип VARCHAR);

– Аудитория (тип VARCHAR);

– E-mail (тип TEXT);

– Фото (TEXT).

Таблица «Блог студента за границей»:

– ID блога (тип SMALLINT);

– Имя (тип VARCHAR);

– Фамилия (тип VARCHAR);

– Университет (тип TEXT);

– Страна (тип TEXT);

– Краткое описание (тип TEXT);

– Текст(тип TEXT);

– Фото 1 (тип VARCHAR);

– Фото 2 (тип VARCHAR);

– Фото 3 (тип VARCHAR);

– Дата публикации (тип DATE).

Таблица «Пользователи»:

– ID пользователя (тип SMALLINT);

– Логин (тип VARCHAR);

– Пароль (тип VARCHAR).

Следует отметить, что поле «пароль» при вводе в него значения будет зашифровано алгоритмом хеширования MD5, при обращении к значениям в данном поле будет производиться дешифрация значений.

Хеширование или хэширование – преобразование массива входных данных произвольной длины в (выходную) битовую строку фиксированной длины, выполняемое определённым алгоритмом.

3.4.2 Реализация базы данных в phpMyAdmin

Далее необходимо создать базу данных, воспользовавшись web-приложением phpMyAdmin.

Получив пароль на хостинге (или на локальном сервере) необходимо войти как пользователь и приступить к созданию таблиц (рисунок 15).

Рисунок 15 – Создание таблиц в phpMyAdmin

Следует отметить, что создавать таблицы, изменять поля и т.д. данное web-приложение позволяет как автоматизированно (простое изменение значения поля или изменения свойства поля через специальный интерфейс или изменение всего вручную, т.е. sql-запросами).

3.5 Реализация серверной части

3.5.1 Реализация ядра системы

Ядро реализуемой системы состоит из 4 файлов:

– index.php;

– config.php;

– ACore.php;

– ACore_admin_php.

Файл index.php является единой точкой входа пользователя в систему.

Данный сценарий делает проверку передаваемых GET-параметров на html и php теги, и в случае положительного исхода переходит по адресу с заданными параметрами, иначе передает параметр «main» и перенаправляет на главную страницу.

Код проверки приведен ниже.

if ($_GET['option']) {

$class = trim(strip_tags($_GET['option']));

}

else {

$class = 'main';}

Функция trim удаляет по краям строки любые пробельные символы, в том числе и символ перевода строки. Так же существуют функции rtrim и ltrim, которые удаляют пробелы вконце иили вначале строки.

Функция strip_tags возвращает строку, очищенную от тегов html и php.

Пример перехода на страницу с параметрами «?option=view»:

if (file_exists("classes/".$class.".php")) {

//exit("<p>Не правильные данные для входа</p>");

include("classes/".$class.".php");

if (class_exists($class)) {

if ($class=="view") {

$obj = new $class;

$obj->get_feed();

}

}

else {

exit("<p>Не правильные данные для входа</p>");

}

}

else {

exit("<p>Неправильный адресс</p>");

}

Получая передаваемые параметры, данный сценарий ищет полученный класс в папке классов. При положительном результате создается объект класса и выполняется функция (выполняется или какой-либо запрос в базу данных, либо отображение чего-либо или и то и то).

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

Ниже представлен перечень всех классов.

ACore – суперкласс, от данного класса наследована большая часть классов, имеет методы для построения главной страницы по модулям (header, навигация и др. блоки), а так же метод абстрактный метод get_feed(), который наследуют все классы потомки и который необходимо описать для каждого класса.

ACore_admin – аналогичный предыдущему суперкласс, расширенный методами для административной панели – get_text_post() и get_text_blog(), которые делают выборку из базы данных и возвращают значения записи в массиве данных, необходимо для изменения новости или записи.

View – класс, метод get_feed() которого совершает выборку из базы данных и выводит все новости института на главной странице в соответствующем блоке.

Sblog – класс, метод get_feed() совершает выборку из базы данных и выводит все блоги студентов за границей.

Sblog_view – класс-страница просмотра блога студента за границей.

Admin – класс, панель администрации.

Add_post – метод данного класса get_feed() отображает форму для добавления новости института, с момента отправки формы выполняется функция obr(), выполняющая запрос в базу данных и добавляет запись в базу данных.

Update_post – метод данного класса get_feed() отображает форму для изменения новости института, с момента отправки формы выполняется соответствующая функция obr().

Delete_post – метод данного класса obr() выполняет sql-запрос на удаление с полученными GET-параметрами.

Классы add_blog, update_blog, delete_blog аналогичны вышеописанным классам новостей института.

Login – класс, отображает панель входа, при входе сравнивает полученные данные с базой данных (с записями в таблице users) – если данные совпадают с какой-либо записью из этой таблицы и она одна – вход разрешен.

Logout – класс, удаляет сессии и cookie-файлы, совершает выход из личного кабинета.

Ask_form – класс, отображает форму для заполнения пользователем (отправка вопроса директору). После момента отправки выполняется функция obr() и добавляет запись в базу данных.

Questions – класс, выводит вопросы директору из базы данных в таблицу-отчет.

Delete_question – класс, функция данного класса совершает удаление выбранного вопроса с переданными GET-параметрами.

Obmen_programms – класс, отображающий страницу с обменными программами ИМС.

Contacts – класс, отображающий контакты с помощью выборки из базы данных.

History – класс, отображающий страницу с историей института.

Kafedra – класс, отображающий страницу с информацией о кафедре.

Rus_abit – класс, отображающий страницу с информацией для российских абитуриентов.

Festu_int_club – класс, отображающий страницу о Международном клубе ДВГУПС.

Festu_int_club_reg – класс, отображающий форму для заполнения заявки в Международный клуб ДВГУПС. После отправки формы функция obr() добавляет запись в базу данных.

Festu_int_club_view – класс, позволяющий просмотреть все заявки в Международный клуб ДВГУПС в панели администратора.

Delete_festu_int_club_reg – класс, функция obr() удаляет заявку.

Gallery – класс, отображающий страницу с галереей. Следует отметить, что галерея является подключенным модулем.

3.5.2 Реализация работы с базой данных

За подключение к базе данных отвечает сценарии config.php, ACore.php и ACore_admin.php. Код сценария config.php представлен ниже.

<?php

define('HOST', 'localhost');

define('USER', 'mini');

define('PASSWORD', '12345');

define('DB', 'mini_cms');

?>

В данном файле объявляются переменные логина, пароля, хоста и названия базы данных.

Непосредственно подключение производится в сценариях ACore.php и ACore_admin.php.

Код подключения представлен ниже.

protected $db;

public function __construct() {

$this->db = mysql_connect(HOST, USER, PASSWORD);

if (!$this->db) {

exit("Ошибка соединения с базой данных".mysql_error());

}

if (!mysql_select_db(DB,$this->db)) {

exit("Нет такой базы данных".mysql_error());

}

mysql_query("SET NAMES 'UTF8'");

}

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

Далее будут рассматриваться выборка блогов и новостей, а также их добавление, изменение и удаление.

Поскольку блоги студентов за границей и новости института реализованы аналогично, рассмотрим функционал на примере новостей института.

За выборку новостей отвечает класс main (сценарий main.php), в частности, наследованная от суперкласса ACore.php функция get_feed().

Сначала сценарий выполняет запрос на выборку из базы данных нужных полей (с обратной сортировкой по дате).

Далее в цикле идет вывод html-кода совместно с результатами запроса в базу данных.

Код запроса на выборку:

$query = "SELECT id_post, title, description, text, date, img_src FROM posts ORDER BY date DESC";

$result = mysql_query($query);

if (!$result) {

exit(mysql_error());

}

Код вывода результата на страницу:

$row = array();

for($i = 0; $i < mysql_num_rows($result); $i++) {

$row = mysql_fetch_array($result, MYSQL_ASSOC);

printf("

<div class='post'>

<div class='post_title'><div class='post_date'><div>%s</div></div>

<a href='?option=view&id_text=%s'>%s</a>

</div>

<img src='%s' alt='post_img_960x480'>

<div class='post_description'>

%s . . .

</div>

<div class='post_read_more'>

<a href='?option=view&id_text=%s'><div>Читать далее</div></a>

</div>

</div>",$row['date'], $row['id_post'],$row['title'],$row['img_src'],$row['description'], $row['id_post']);

}

Так же результат работы сценария представлен на рисунке 22.

Рисунок 22 – Результат работы сценария main.php

Следует отметить, что при выводе результата в тег гиперссылки на статью помещается номер идентификатора статьи как GET-параметр.

За построение и отображение отдельной страницы с новостью отвечает сценарий view.php с одноименным классом и функцией get_feed() – производится выборка из базы данных и вывод с html-кодом.

Добавление записи происходит следующим образом:

– за добавление отвечает класс add_post;

– пользователь заполняет поля поста на специально сгенерированной странице с web-формой (функция get_feed()), затем отправляет;

– после отправки выполняется функция obr(), которая с помощью запроса в базу данных добавляет запись.

Код функции obr() представлен ниже.

protected function obr() {

if (!empty($_FILES['img_src']['tmp_name'])) {

if(!move_uploaded_file($_FILES['img_src']['tmp_name'], 'images/'.$_FILES['img_src']['name'])){

exit("Не удалось загрузить изображение");

}

$img_src = 'images/'.$_FILES['img_src']['name'];

}

else {

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5288
Авторов
на СтудИзбе
417
Средний доход
с одного платного файла
Обучение Подробнее