Guest User

/old/index.php

a guest
Oct 23rd, 2016
124
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 3.95 KB | None | 0 0
  1. <?php
  2.     /**
  3.      * Скрипт контролирует информацию, которая отображается на странице сайта,
  4.      * а также обрабатывает действия пользователя
  5.      * Сайт показывает шесть случайных цитат человека с именем Phoenix,
  6.      * выбранных из заранее составленной БД mysql;
  7.      * цитаты расположены в случайных местах, со случайным цветом текста.
  8.      *
  9.      *
  10.      */
  11.  
  12.     ob_start();  //выводим всё дальнейшее содержимое в буфер
  13.  
  14.     /* раздел объявления констант */
  15.  
  16.     //этот скрипт ищет и задаёт файловый рут сайта (константа DOC_ROOT)
  17.     include_once('__php__.php');
  18.     //добавляет рукописные функции и классы
  19.     include_once(DOC_ROOT . '/Phoenix_demo/helpers.inc.php');
  20.  
  21.     define('CSS_PATH', DOC_ROOT . '/Phoenix_demo/stylesheet.css');
  22.     define('CHANGE_LOG', DOC_ROOT . '/Phoenix_demo/changelog.txt');
  23.  
  24.     //начальное значение - текст сайта отображается в цвете
  25.     $color_on = true;
  26.    
  27.     //отображает на странице чейндж-лог
  28.     $changes = file(CHANGE_LOG, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
  29.     $change_tpl = DOC_ROOT . '/Phoenix_demo/tpl_changes.php';
  30.  
  31.     //обрабатывает нажатие кнопки "новая цитата"
  32.     if (isset($_GET['new_quote'])) {
  33.         //перемещает пользователя на страницу админки
  34.         header('Location: ' . "/Phoenix_demo/Admin/", true, 303);
  35.     }
  36.  
  37.     //обрабатывает возможное нажатие кнопки "Убрать цвет"
  38.     include 'dis_color.php';
  39.  
  40.     //подключается к базе данных mysql, получает объект $mysqli
  41.     //данные для подключения к БД получает из .ini файла
  42.     $config = parse_ini_file(DOC_ROOT . '/Phoenix_demo/ini/config.ini');
  43.     include DOC_ROOT . '/Phoenix_demo/includes/db.inc.php';
  44.  
  45.     //получает диапазон номеров цитат из БД
  46.     $sql = 'SELECT MIN(id), MAX(id) FROM `quotes`';
  47.     $result = $mysqli->query($sql);
  48.     if (!$result)
  49.     {
  50.         $error = 'Error fetching quotes of Phoenix from db!';
  51.         include DOC_ROOT . '/Phoenix_demo/error.html.php';
  52.         exit();
  53.     }
  54.     while ($row = mysqli_fetch_array($result))
  55.     {
  56.         $min = $row[0];
  57.         $max = $row[1];
  58.     }
  59.  
  60.     $id[0] = 0;
  61.     $count = 6;  //число получаемых цитат
  62.     //для каждой из шести цитат
  63.     for ($i = 0; $i < $count; $i++)
  64.     {
  65.         do
  66.         {
  67.             do
  68.             {
  69.                 //выбирает случайный номер цитаты
  70.                 $temp_id = mt_rand($min, $max);
  71.             }
  72.             //проверяет список номеров цитат на дубликаты
  73.             while (array_search($temp_id, $id) !== FALSE);
  74.  
  75.             //записывает номер цитаты, которую затем запросит из БД
  76.             $id[$i] = $temp_id;
  77.  
  78.             //получает текст цитаты
  79.             $sql = "SELECT `quote` FROM `quotes` WHERE `id` = $id[$i]";
  80.             $result = $mysqli->query($sql);
  81.             if (!$result)
  82.             {
  83.                 $error = 'Error fetching quotes of Phoenix from db! ' . $mysqli->error;
  84.                 include DOC_ROOT . '/Phoenix_demo/error.html.php';
  85.                 exit();
  86.             }
  87.         }
  88.         //проверка: если цитата с выбранным номером не существует
  89.         while (mysqli_num_rows($result) == 0);
  90.         //записывает текст цитаты
  91.         $citations[] = mysqli_fetch_array($result)[0];
  92.     }
  93.     //файл с главным текстом веб-страницы (шаблон)
  94.     $tpl = DOC_ROOT . '/Phoenix_demo/tpl_citations.php';
  95.     //вызывает общий шаблон страницы, который использует $tpl
  96.     include 'tpl_main.php';
  97. ?>
Advertisement
Add Comment
Please, Sign In to add comment