PHP

Фев
15th

Между-школьная олимпиада, страна Катар, город-столица Доха

16.02.2014 Таки была проведена олимпиада между школами столицы страны Катар — городом Доха(персидский залив). В Катаре мальчики учатся в школе для мальчиков, а девочки — в школе для девочек.

katar

Олимпиада проводилась в системе, которую я написал совместно с египтянином Тарек из Каира. Моя задача была сделать серверную часть приложения (на PHP+mySQL), а Тарек делал клиентскую часть приложения на Flash.
Вот панель входа в систему для школьников:
login_page

Как вы успели заметить, язык — арабский. Но для кодировки UTF-8 это не проблема, он в ней присутствует вместе со всеми другими языками. А вот в кодировке windows-1251 его, естественно, нет.

Я даже выучил арабскую буквы А,С (как русские) и Б — это рога быка

Главная проблема была — написание с права налево. Это просто беда. Если выставить направление текста с права налево, то точка поставленная после предложения оказывается перед последним словом. Поэтому клиентскую часть вначале я писал. С ошибками. А потом её писал египтянин Тарек, который на арабском не только пишет но и думает.

Зато я писал админку этой олимпиады (на Английском). Она запускает тест и получает результаты его от клиентской программы, записывает их в базу данных. Особенностью олимпиады является то, что уровней — 5, каждый уровень каждый ученик может запустить только один раз. Для этого для каждого запуска теста ученик получает уникальную пару логин-пароль. Которая может быть использована единожды. К началу олимпиады ведущий генерирует сотни случайных паролей нажатием одной кнопки, которая ко всем введённым в базу данных логинам добавляет пароли на все 5 уровней:

После проведения теста ведущий просматривает результаты из админ-панели.
В ней есть настройки «какие тесты показывать»: завершённые/не завершённые, удалённые/не удалённые, за какой период:

admin_settings

По этим настройкам формируется отчёт.

При формировании отчёта формируется .pdf — файл — копия(средствами php). Которую можно скачать нажав на соответствующую кнопку.Вот он.

А это такой же отчёт на экране в броузере:

admin_pan

Немножко географии

Если верить гуглу, то город Доха находится на берегу моря:
qatar(чёрненькое — жилые районы, синенькое — море).
А дачное строительство в Катаре не развито — поэтому за городом пустыня, со спутника похожая на лунную поверхность:
after_city Власть дачи не раздаёт осознанно, чтобы катарцы не добывали на даче газ, нефть и соль.

Янв
4th

Сайт + Плагин — калькулятор стоимости услуг, CMS WordPress

Посетитель сайта может самостоятельно рассчитать стоимость услуг, вводя объём работ в соответствующие поля таблицы.

Таблиц — пять. Каждую секунду рассчитывается объём работ по каждой таблице и по всем таблицам. Результат расчёта выводится внизу, там же кнопка «Заказать», по нажатию на которую хозяин сайта получает на почту перечень работ и координаты клиента.

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

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

Хранятся данные в формате «Таблица xml Excel 2003», что позволяет экспортировать её на локальный компьютер, изменить в программе MS Excel и загрузить обратно(экспорт и импорт так же производится через админку сайта).

Как калькулятор, так и весь сайт имеет 2 оптимальных разрешения экрана — это телефон и 1000 пикселей в ширину. К сожалению, обилие графических материалов не позволило красиво растягивать содержимое на любую ширину.



Вид странички конфигурации в админке:

Сен
5th

Сделана: Школьная олимпиада

Рубрика: PHP | Комментировать

qatarquiz
qq_question5
  Сделана олимпиада для школьников на веб-сервере На PHP+Flash. К ней управляющая система на PHP+MySQL.;

    Сделано:



  • Первоначально тесты писались на HTML+javascript, позже сделаны на Flash по причине большей красоты;

  • На олимпиаде студент вводит свой логин и пароль в систему. Если они верны, система выдаёт ему вопросы. Ответы на вопросы записываются в базу данных;

  • Преподаватель может задавать из админ панели пароли для студентов и уровень олимпиад;

  • Преподаватель может смотреть результаты олимпиады и ответы каждого ученика, сохранять их в PDF;

  • По завершению работ заказчику передана документация: инструкции и описания.
  • Язык тестов — арабский, язык системы — ангийский.

Сен
5th

Сделан: Файлообменник

Рубрика: PHP | Комментировать

filehosting306x216
  Бесплатный файлообменник переделан в платный, при этом объём кода PHP главной страницы увеличился с 17 до 74 кБ;

    Сделано:



  • Запись всех действий в БД, до этого файлообменник обходился без неё;

  • файлообменник на одного пользователя переделан в файлообменник на много пользователей, модераторов и администраторов;

  • Для каждого пользователя выводится список его файлов и выплат, для модератора — всех файлов и выплат;

  • Добавлен учёт уникальных и неуникальных скачиваний;

  • Добавлена страница регистрации, выполненная по современным требованиям безопасности:
  • В интернет отправляется хэшь пароля от сотни тысяч необратимых преобразований sha1 (md5 устарел).
  • Хэшь пароля проверяется на сложность взлома: полученный хэшь сравнивается с хэшем английских и
    русских слов,
    с хэшем логина, логинлогин, логин с права на лево (это порядка 100 тыс. вариантов — гарантия того что пароль не будет взломан за первые 27 часов). Ответ на пароль от сервера приходит через 1 с.
  • И наконец неудачные попытки подбора пароля записываются в базу данных, и после N-ой попытки IP пользователя блокируется через добавление его в .htacsess;

  • Доработан дизайн сайта, не трогая его таблицу стилей(CSS). Поскольку предполагается частая работа со страницей, её вес минимизирован за счёт замены картинок на элементы Active-X;