
- •Часть 1. Компьютерная графика и web-дизайн. Теоретические основы.
- •Цветовая модель rgb
- •Цветовая модель cmyk
- •Цветовая модель lab
- •Структура гиперссылки
- •Категории гиперссылок
- •Формы гиперссылок
- •Дизайн гиперссылок
- •Принципы юзабилити
- •Назначение навигации
- •Глобальная навигация
- •Нарушения навигации
- •Организация навигации при помощи закладок
- •О блако тегов
- •1. Сбор страниц
- •2. Индексирование страниц
- •Проблемы поисковых систем
- •Создание системы поиска
- •Интерфейс поиска
- •Дизайн страницы результатов
- •Отрицательный результат поиска
- •Принципы разработки отдельных страниц Главная страница
- •Splash-страница
- •Специальные навигационные страницы
- •Страницы для обратной связи
- •Выходные страницы
- •Страницы с фиксированными размерами
- •Масштабирование по горизонтали
- •Введение в web-типографику
- •Правила составления текстов для web
- •Главные правила текстового дизайна
- •Создание логотипа
- •Выбор цветовой гаммы сайта
- •2. Эксплуатационный опрос
- •3. Определение технических подробностей
- •4.Изучение аудитории
- •5.Анализ отрасли
- •6. Составление первичной документации
- •1. Структурирование сайта с точки зрения контента
- •Основные ошибки клиента
- •2. Создание карты сайта
- •3. Установка соглашений об именовании
- •1. Разработка концепции дизайна
- •2. Выверка
- •3. Создание графических шаблонов и руководства по стилю оформления
- •1. Подготовка к производству
- •2. Заключение договора о хостинге
- •3. Формирование файловой структуры
- •4. Компоновка страниц
- •5. Контроль качества
- •1. Передача сайта
- •2. Запуск
- •3. Сопровождение
- •Баннер с позиции рекламодателя
- •Баннер с позиции дизайнера
- •Часть 2. Разработка web-узлов. Практическое задание.
- •1. Запись данных: insert
- •2. Чтение данных: select
- •3. Обновление данных: update
- •4. Удаление данных: delete
- •Описание
- •Синтаксис
- •Описание
- •Синтаксис
- •Синтаксис
- •Аргументы
- •Описание, примеры
- •Связь между окнами
- •Строка параметров
- •Основные кроссбраузерные параметры
- •Заметки
- •Конструкция включений require
- •Конструкция включений include
- •Часть 3. Верстка и допечатный процесс.
- •1. Каждая статья должна иметь прямоугольную форму и состоять из прямоугольных блоков
- •2. Обтекаемая текстом фотография должна занимать по ширине целое число колонок
- •3. Колонку текста нельзя прерывать элементами графического дизайна
- •4. При вертикальной верстке элементы статьи должны располагаться в строгом порядке: 1) фотография, 2) подпись к фотографии, 3) заголовок, 4) текст
- •5. Из нескольких иллюстраций к статье следует выбирать одну ведущую
- •1. Материалы должны быть явно отделены друг от друга.
- •2. Материалы должны выстраиваться в иерархию.
- •3. Заголовки соседних материалов не должны слипаться.
- •4. Следует соблюдать иерархию фотоматериалов.
- •5. Полоса должна быть визуально сбалансирована.
- •6. Больше трёх-четырёх гарнитур на полосе использовать нельзя.
- •Часть 4. Операционные системы и компьютерные сети. Вопрос №1. Диапазоны ip-адресов локальных сетей, их назначение
- •Вопрос №2. Прямые и обратные dns-запросы, структура домена .In-addr.Apra
- •Вопрос №3. Напишите консольные команды и их параметры, позволяющие запускать, останавливать и перезапускать сервис Apache, а также просматривать прослушиваемые сервисами порты локального хоста
- •Вопрос №5. Напишите инструкции файла настроек Apache, запрещающие в текущем каталоге доступ ко всем файлам с расширением log отовсюду, кроме локального хоста
- •Вопрос №6. Напишите инструкции файла настроек Apache, разрешающие доступ в текущий каталог только прошедшим аутентификацию пользователям
- •Вопрос №7. Напишите инструкции файла глобальных настроек Apache, организующие виртуальный хост Вопрос №8. Опишите назначение поставляемых в пакете веб-сервера Apache утилит htpasswd, ab
Часть 2. Разработка web-узлов. Практическое задание.
Написать код для создания ролловера (с использованием JavaScript). Названия и размер изображений выбрать произвольно.
<img src="1.jpg" onmouseover="this.src = '2.jpg';" onmouseout="this.src = '1.jpg'; " >
Создать подключаемый модуль, осуществляющий соединение с базой данных MySQL (название БД, имя пользователя, пароль могут быть произвольны). Указать PHP-директиву для включения этого файла на страницу.
Соединение с базой данных в двух словах сводится к следующему:
$db_server = 'сервер баз данных (обычно localhost)';
$db_user = 'пользователь/администратор';
$db_password = 'пароль';
$db_name = 'имя базы';
$connected = @mysql_connect($db_server, $db_user, $db_password);
if($connected) {
$select_db = mysql_select_db($db_name);
if(!$select_db) die('No DB connection');
}
else {
die('No DB connection');
}
Этот код следует держать в отдельном файле (например, db.php) и включать однократно при помощиrequire_once('db.php'). Предположим, что база данных уже есть (её проще всего создать при помощи phpMyAdmin или другого инструмента). Далее требуется создать таблицу, в которой будут храниться данные. Например, таблица для пользователей и их паролей, в которой также хранятся уникальные идентификаторы пользователей и их электронные адреса:
$query_create = mysql_query("CREATE TABLE `users` (
`id` INT( 11 ) NOT NULL AUTO_INCREMENT ,
`name` VARCHAR( 255 ) NOT NULL ,
`email` VARCHAR( 255 ) NOT NULL ,
`password` VARCHAR( 255 ) NOT NULL ,
PRIMARY KEY ( `id` )
)");
Все поля не могут быть пустыми (NOT NULL), число идентификатора автоматически увеличивается на единицу при создании нового пользователя (AUTO_INCREMENT), поля могут быть не только типов INT(целое число), VARCHAR (разеые символы), но и LONGTEXT (длинный текст), DATETIME (дата и время) и т.п.
В функцию PHP mysql_query() в двойных кавычках помещается тело запроса; принято названия полей и таблиц MySQL писать в обратных кавычках, а переменные PHP внутри тела запроса в одинарных кавычках. Первичный ключ, по которому можно идентифицировать запись — id, как о том говоритPRIMARY KEY.
Этот код выполняется однократно, допустим, через самостоятельно созданную СуБД или просто во временной странице. Далее название этой таблицы можно занести в переменную:
$table = "users";
и с этой переменной работать.
Далее рассмотрены основные типы запросов, без которых невозможно обойтись.
1. Запись данных: insert
Допустим, мы приняли данные из формы:
$name = @$_POST['name'];
$password = @$_POST['password'];
$email = @$_POST['email'];
Теперь эти данные запишем как новую строку БД:
$result = mysql_query("INSERT INTO `$table` (`name`, `password`, `email`) VALUES ('$name', '$password', '$email')");
В первых скобках указывается порядок полей, во вторых записываемые значения.
2. Чтение данных: select
Самый популярный тип запроса, извлекающий нужные данные из БД. Допустим, нужно извлечь все данные о пользователе по известному имени, хранящемуся в переменной $login:
$query = mysql_query("SELECT * FROM `$table` WHERE `name` = '$login'");
Звёздочка обозначает «всё». Оператор WHERE — условие. Условия можно группировать, а выбирать только определённые типы полей:
$query = mysql_query("SELECT `name`, `email` FROM `$table` WHERE `name` = '$login' OR `name` = '$login2'");
Теперь, когда мы запросили данные, они хранятся в т.наз. ресурсе, содержащемся в переменной$query (её можно называть как угодно). Ресурс может содержать одну строку (если совпадение по условию одно), а может и несколько (допустим, если мы запросили все данные без условий:
$query = mysql_query("SELECT * FROM `$table`");
то запрос вернёт всю информацию обо всех пользователях).
Если мы точно знаем, что запрос вернул одну строку с результатом, то достаточно прочитать данные из ресурса и занести в массив:
$sets = mysql_fetch_array($query);
Теперь у нас есть массив, названия ключей которого совпадают с полями из таблицы, например,$sets['email'] хранит в себе электронный адрес того пользователя, который был «прочитан» из базы.
Функция mysql_fetch_array() выбирает из ресурса по одной строке за раз, поэтому для обращения ко всем строкам нужно считывать данные из ресурса циклом:
$emails = array();
while($set = mysql_fetch_array($query)) {
$emails[] = $set['email'];
}
Так мы получаем массив всех электронных адресов всех пользователей, которые вернул запрос. Так же циклически можно эти данные сразу обрабатывать.
Чтобы упорядочить данные ещё на этапе запроса, можно сразу сортировать их:
$query = mysql_query("SELECT * FROM `$table` ORDER BY `id` DESC");
— в данном случае будет происходить обратная (DESC) сортировка по идентификатору (ORDER BY `id`) пользователей.