Это устаревшая версия документа.
Новая версия задачи (с подробными комментариями, пояснениями и советами) выложена по адресу 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, но не тащи к нему кучу лишних файлов и плагинов.
Сдохну скорее, чем до конца решу.