Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- /**
- * Скрипт контролирует информацию, которая отображается на странице сайта,
- * а также обрабатывает действия пользователя
- * Сайт показывает шесть случайных цитат человека с именем Phoenix,
- * выбранных из заранее составленной БД mysql;
- * цитаты расположены в случайных местах, со случайным цветом текста.
- *
- *
- */
- ob_start(); //выводим всё дальнейшее содержимое в буфер
- /* раздел объявления констант */
- //этот скрипт ищет и задаёт файловый рут сайта (константа DOC_ROOT)
- include_once('__php__.php');
- //добавляет рукописные функции и классы
- include_once(DOC_ROOT . '/Phoenix_demo/helpers.inc.php');
- define('CSS_PATH', DOC_ROOT . '/Phoenix_demo/stylesheet.css');
- define('CHANGE_LOG', DOC_ROOT . '/Phoenix_demo/changelog.txt');
- //начальное значение - текст сайта отображается в цвете
- $color_on = true;
- //отображает на странице чейндж-лог
- $changes = file(CHANGE_LOG, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
- $change_tpl = DOC_ROOT . '/Phoenix_demo/tpl_changes.php';
- //обрабатывает нажатие кнопки "новая цитата"
- if (isset($_GET['new_quote'])) {
- //перемещает пользователя на страницу админки
- header('Location: ' . "/Phoenix_demo/Admin/", true, 303);
- }
- //обрабатывает возможное нажатие кнопки "Убрать цвет"
- include 'dis_color.php';
- //подключается к базе данных mysql, получает объект $mysqli
- //данные для подключения к БД получает из .ini файла
- $config = parse_ini_file(DOC_ROOT . '/Phoenix_demo/ini/config.ini');
- include DOC_ROOT . '/Phoenix_demo/includes/db.inc.php';
- //получает диапазон номеров цитат из БД
- $sql = 'SELECT MIN(id), MAX(id) FROM `quotes`';
- $result = $mysqli->query($sql);
- if (!$result)
- {
- $error = 'Error fetching quotes of Phoenix from db!';
- include DOC_ROOT . '/Phoenix_demo/error.html.php';
- exit();
- }
- while ($row = mysqli_fetch_array($result))
- {
- $min = $row[0];
- $max = $row[1];
- }
- $id[0] = 0;
- $count = 6; //число получаемых цитат
- //для каждой из шести цитат
- for ($i = 0; $i < $count; $i++)
- {
- do
- {
- do
- {
- //выбирает случайный номер цитаты
- $temp_id = mt_rand($min, $max);
- }
- //проверяет список номеров цитат на дубликаты
- while (array_search($temp_id, $id) !== FALSE);
- //записывает номер цитаты, которую затем запросит из БД
- $id[$i] = $temp_id;
- //получает текст цитаты
- $sql = "SELECT `quote` FROM `quotes` WHERE `id` = $id[$i]";
- $result = $mysqli->query($sql);
- if (!$result)
- {
- $error = 'Error fetching quotes of Phoenix from db! ' . $mysqli->error;
- include DOC_ROOT . '/Phoenix_demo/error.html.php';
- exit();
- }
- }
- //проверка: если цитата с выбранным номером не существует
- while (mysqli_num_rows($result) == 0);
- //записывает текст цитаты
- $citations[] = mysqli_fetch_array($result)[0];
- }
- //файл с главным текстом веб-страницы (шаблон)
- $tpl = DOC_ROOT . '/Phoenix_demo/tpl_citations.php';
- //вызывает общий шаблон страницы, который использует $tpl
- include 'tpl_main.php';
- ?>
Advertisement
Add Comment
Please, Sign In to add comment