Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Informatica.docx
Скачиваний:
9
Добавлен:
17.08.2019
Размер:
1.15 Mб
Скачать

2.2. Настройка локального веб-сервера

Для разработки и тестов на локальной машине, лучше всего использовать пакет средств веб-программирования Denwer, так как он уже включает в себя установленные и настроенные Apache 2, MySQL 5.1, PHP 5 и другое.

В первую очередь, создаем базу данных через интерфейс phpMyAdmin:

В этой базе данных (БД) будет таблица, содержащая данные о статьях. Так как проект некоммерческий, то и хостинг будем в последующем использовать бесплатный, с ограниченным объемом, выделенным на базы данных. Поэтому в БД будут храниться только ссылки на статьи. Поэтому следующий шаг – создание таблицы из 2 колонок: идентификатор статьи (1,2,3…) и ссылка на статью.

После создания таблицы добавим в неё пару записей:

id

link

1

http://pastebin.com/raw.php?i=AQLthDeQ

2

http://pastebin.com/raw.php?i=3YAcCtNz

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

Записи в «облаках» (на сторонних серверах) хранятся в формате JSON. Зачем был предпринят такой шаг: в один сплошной текст нужно неким образом записать и упорядичить такую информацию:

  1. никнейм автора статьи

  2. ссылку на оригинальную статью

  3. заголовок

  4. сам текст

  5. в последующем - дополнительные данные, такие как изображения по теме и т.п.

Чтобы все это не путалось при разделении сплошного текста на эти части и используется оформление в формате JSON. Выглядит это приблизительно так:

{

"author":"admin",

"link":"http://nat-geo.ru/news/551",

"header":"Лемминги",

"text":"Текст с сайта National Geographic о леммингах"

}

Теперь процесс приема информации приблизительно становится ясным:

2.3. Написание программного кода для сервера

Теперь переходим к программированию страниц (на языке PHP). Вся суть php-кода в данном проекте будет сводиться к

  1. выбору статьи из базы данных;

  2. получению выбранной статьи с сервера pastebin.

Использовать MySQL в связке с PHP очень удобно, так как их уже давно приспособили друг к другу. Так, например, будет выглядеть код подключения к БД:

PHP – серверный язык программирования, поэтому, просто зайдя на данную страницу, нельзя увидеть её исходный код. Однако есть множество уловок (SQL-инъекции) для кражи данных, или даже удаления БД. Некоторые такие уловки предотвращаются небольшими правками в конфигурационных файлах php.ini, .htaccess и др. Иные нужно предотвращать в коде страниц.

Вот, например сервер настроен так, что при наборе такого адреса:

Должна выдаваться статья с идентификатором 3. Однако если вместо тройки подставить некоторый отрывок кода (хакер может лишь предполагать, как исполняется программа), то код может исполняться далее так, как написал взломщик (например, вывести пароли пользователей БД). Поэтому, учитывая возможные «дыры», программный код в несколько строк становится в разы длиннее.

(страница получения статьи с указанным номером в параметре GET или из уже имеющейся переменной)

Добавили страницу для вывода случайным образом выбранной статьи:

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]