Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on Jul 15th, 2012  |  syntax: None  |  size: 9.56 KB  |  hits: 14  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. <?
  2. session_start();                //Начинаем сессию для проверки и хранения данных о логине и пароле пользователя
  3. require_once('funcs.php');      //Подключаем файл с функциями, в то время как в этом файле будет исключительно логика работы сайта
  4.  
  5. initMySQL();                    //Обращаемся к функции подключения к MySQL базе данных
  6.  
  7. //Проверяем, авторизован ли уже пользователь, и если нет, то выполняем код в блоке ниже
  8. if(!isAuthorized()) {
  9.         //Есть ли что-нибудь в массиве $_POST (была лы нажата кнопка "Войти") и было ли введено что-либо в поле name ("Логин")
  10.         if(count($_POST) && $_POST['name']) {
  11.                 //Перекладываем данные о логине и пароле из формы в переменные для более удобного использования
  12.                 $name = $_POST['name'];
  13.                 $pass = $_POST['pass'];
  14.  
  15.                 //Если на сервере отключено автоматическое добавление слешей, то нужно сделать это вручную
  16.                 if(!get_magic_quotes_gpc()) {
  17.                         $name = addslashes($name);
  18.                         $pass = addslashes($pass);
  19.                 }
  20.  
  21.                 //Проверяем, удастся ли нам авторизоваться по введенным логину и паролю
  22.                 if(checkAuthorization($name, $pass)) {
  23.                         //Авторизация прошла успешно, надо записать введенные данные в сессию
  24.                         storeAuthorization($name, $pass);
  25.  
  26.                         //Отправляем пользователя на ту же самую страницу и завершаем исполнение программы
  27.                         header('Location: ?');
  28.                         die();
  29.                 } else {
  30.                         //Авторизация не удалась, запишем текст ошибки для вывода на странице
  31.                         $error = 'Пара Логин-Пароль введены не верно';
  32.                 }
  33.         }
  34.  
  35.         //Выводим верхнюю часть сайта, кусок html кода с формой авторизации и нижнюю часть сайта. После этого останавливаем исполнение программы
  36.         include('html/top.php');
  37.         include('html/login.php');
  38.         include('html/bottom.php');
  39.         die();
  40. }
  41.  
  42. //В этому моменту мы уже проверили, авторизовано ли пользователь и можно начать выполнять обычную логику работы сайта
  43. //Переменная act из $_GET массива служит указателем того, какое действие нужно выполнить
  44. $act = $_GET['act'];
  45.  
  46. //Выбираем что делать, в зависимости от значения act
  47. switch($act) {
  48.         //Если act имеет значение list или любое другое, которого нет в возможных вариантах (default)
  49.         case 'list':
  50.         default: //...то выводим список студентов
  51.                 //Записываем переменные года и группы из $_GET массива для использования их в шаблоне и выбора студентов из базы данных
  52.                 $year = $_GET['year'];
  53.                 $group = $_GET['group'];
  54.  
  55.                 //Получаем список лет
  56.                 $years = getYears();
  57.  
  58.                 //Если уже выбран год
  59.                 if($year) {
  60.                         //Получаем список групп исходя из выбранного года
  61.                         $groups = getGroups($year);
  62.  
  63.                         //Если уже выбрана группа
  64.                         if($group) {
  65.                                 //Запрашиваем из базы данных список студентов по выбранному году и группе
  66.                                 $students = getStudentsFiltered($year, $group);
  67.  
  68.                                 //Логика того, что нужно выводить на страницы определена внутри конкретного шаблона. В данном случае это html/list.php
  69.                         }
  70.                 }
  71.  
  72.                 //Страница со списком студентов и выпадающими списками в левой колонке
  73.                 $current_page = 'list.php';
  74.         break;
  75.         case 'student':
  76.                 //Получаем переменную id из $_GET массива, которая является номером студента в базе данных, обернув ее в функцию превращения в целое число
  77.                 $id = intval($_GET['id']);
  78.  
  79.                 //Получаем массив с данными студента из базы данных
  80.                 $student = getStudent($id);
  81.  
  82.                 //Страница подробных данных о студенте
  83.                 $current_page = 'student.php';
  84.         break;
  85.         case 'admin': //Административная часть, в которой идет редактирование списка студентов
  86.                 //Если пользователь не является администратором (см. isAuthorized() в funcs.php), то закончить выполнение программы с сообщением "Доступ закрыт"
  87.                 if(!$logged_user['is_admin']) die('Доступ закрыт');
  88.  
  89.                 //По аналогии с переменной act, получаем переменную what, которая будет определять, что делать внутри административной части
  90.                 $what = $_GET['what'];
  91.                 switch($what) {
  92.                         case 'list': //И снова, если what стоит на list или на любое, которое не описано внутри этого блока switch
  93.                         default: //...то выводим список студентов для админки
  94.                                 $students = getStudents(); //Вызываем функцию получения (всех) студентов
  95.  
  96.                                 //Эта страница - список студентов, на ней выведем только что полученных студентов
  97.                                 $current_page = 'admin.php';
  98.                         break;
  99.                         case 'add': //Выводим форму добавления нового студента
  100.                                 //Если массив $_POST имеет размер, то значит что мы отправили форму и нужно из данных формы создать новую запись
  101.                                 if(count($_POST)) {
  102.                                         //Вызываем функцию создания нового студента и отправляем в нее весь $_POST массив
  103.                                         createStudent($_POST);
  104.  
  105.                                         //Отправляем пользователя на главную страницу админки и завершаем выполнение программы
  106.                                         header('Location: ?act=admin');
  107.                                         die();
  108.                                 }
  109.  
  110.                                 //Страница с формой
  111.                                 $current_page = 'admin_add.php';
  112.                         break;
  113.                         case 'edit': //Выводим форму редактирования студента
  114.                                 //Получаем переменную id из $_GET массива, которая является номером студента в базе данных, обернув ее в функцию превращения в целое число
  115.                                 $id = intval($_GET['id']);
  116.  
  117.                                 //Если массив $_POST имеет размер, то значит что мы отправили форму и нужно из данных формы обновить запись
  118.                                 if(count($_POST)) {
  119.                                         //Вызываем функцию редактирования студента и отправляем в нее id студента и весь $_POST массив
  120.                                         editStudent($id, $_POST);
  121.  
  122.                                         //Отправляем пользователя на главную страницу админки и завершаем выполнение программы
  123.                                         header('Location: ?act=admin');
  124.                                         die();
  125.                                 }
  126.  
  127.                                 //Запрашиваем данные о редактируемом студенте
  128.                                 $student = getStudent($id);
  129.  
  130.                                 //Страница с формой
  131.                                 $current_page = 'admin_edit.php';
  132.                         break;
  133.                         case 'del': //Удаляем запись о студенте и сразу же возвращаем пользователя на список админки
  134.                                 //Получаем переменную id из $_GET массива, которая является номером студента в базе данных, обернув ее в функцию превращения в целое число
  135.                                 $id = intval($_GET['id']);
  136.  
  137.                                 //Вызываем функцию удаления студента по его id
  138.                                 deleteStudent($id);
  139.  
  140.                                 //Отправляем пользователя на главную страницу админки и завершаем выполнение программы
  141.                                 header('Location: ?act=admin');
  142.                                 die();
  143.                         break;
  144.                 }
  145.         break;
  146.         case 'logout': //Выход из системы
  147.                 //Вызываем функцию, очищающую сессию
  148.                 doLogout();
  149.  
  150.                 //Отправляем пользователя на начальную страницу (где он снова увидит форму авторизации)
  151.                 header('Location: ?');
  152.                 die();
  153.         break;
  154. }
  155.  
  156. //Выводим верх и низ сайта и текующую страницу, значение которой мы получили выше
  157. include('html/top.php');
  158. include('html/'.$current_page);
  159. include('html/bottom.php');
  160.  
  161. ?>