Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save codedokode/d7e7f11449fc3bcb24b4 to your computer and use it in GitHub Desktop.
Save codedokode/d7e7f11449fc3bcb24b4 to your computer and use it in GitHub Desktop.
Простая задача на сайт на PHP

Это устаревшая версия документа.

Новая версия задачи (с подробными комментариями, пояснениями и советами) выложена по адресу https://github.com/codedokode/pasta/blob/master/student-list.md. Поверь, с новой версией решить задачу гораздо проще, там все подробно расписано, так что переходи и читай.


  • Требуется знать: PHP, основы ООП, основы баз данных, основы HTML/CSS, формы, таблицы, как работает веб-страница.
  • Уровень: начинающий
  • Время: 3-10 дней

Cделай сайт регистрации абитуриентов. Он состоит из 2 страниц: форма ввода/редактирования информации о себе и список зарегистрированных абитуриентов (главная страница).

Форма содержит поля: имя, фамилия, пол, номер группы (4 или 5 цифр), e-mail (должен быть уникален), суммарное число баллов на ЕГЭ (проверять на адекватность), год рождения, местный или иногородний. Данные надо сохранять в БД, все поля обязательны, все поля надо проверять (например нельзя ввести фамилию длиной 200 символов), при ошибке ввода отображать форму с сообщением об ошибке и выделенным красным цветом ошибочным полем, при успешном заполнении — спасибо, данные сохранены, вы можете их отредактировать или просмотреть список абитуриентов.

После регистрации сайт должен запомнить пользователя и вместо формы регистрации показывать форму редактирования своих данных. Запомнить пользователя можно с помощью кук, ставить на 10 лет. Надо использовать какой-то код, чтобы нельзя было отредактировать чужие данные.

Список абитуриентов — выводит имя, фамилию, номер группы, число баллов. Выводятся по 50 человек на страницу, сортировка по любому полю (по умолчанию по числу баллов вниз). Есть поле поиска, которое ищет сразу по всем строкам таблицы, регистронезависимо (то есть туда можно ввести номер группы либо часть имени/фамилии).

HTML-шаблоны должны быть отделены от PHP кода ( http://www.phpinfo.su/articles/practice/shablony_v_php.html ). Надо использовать ООП. Для работы с базой данных можно использовать PDO и паттерн DataMapper ( http://design-pattern.ru/patterns/data-mapper.html http://habrahabr.ru/post/198450/ ). Желательно использовать autoloading для подключения классов. Для оформеления формы и таблицы можно использовать готовый CSS-фреймворк Twitter Bootstrap, но не тащи к нему кучу лишних файлов и плагинов.

@nuclearbear
Copy link

Сдохну скорее, чем до конца решу.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment