FAQ по веб-дизайну для клиентов. Список вопросов и ответов, касающихся процесса разработки сайта!
Круг вопросов, связанных с созданием веб-сайта, для большинства людей, даже не по наслышке знакомых с сетью Интернет, нуждаются в профессиональных пояснениях. Дизайн сайта разрабатывается в зависимости от пожеланий заказчика. Здесь Вы можете ознакомиться с часто задаваемыми вопросами по созданию сайтов и ответами на них.
JavaScript - это язык программирования, используемый в составе HTML для увеличения функциональности и возможностей взаимодействия с пользователями. Многие начинающие "веб-мастера" во всю силу своей фантазии используют "украшения", сделанные из готовых скриптов, хотя этот язык обладает и более серьёзными возможностями. Вот наиболее частые примеры применения JavaScript: проверка введённых пользователем данных до их отправки на сервер, организация меню со сложной структурой, вывод вспомогательных окон. Если нет серьёзной необходимости в украшениях и наворотах, советую не тратить время на JavaScript. До сих пор JavaScript поддерживается не у всех, а если и поддерживается, то у каждого по-своему.
CSS - Cascade Style Sheets (каскадные стилевые таблицы). Вещь, на которую стоит тратить времени даже чуть больше, чем на HTML. CSS - это мощное средство управления оформлением сайта. CSS включается непосредственно в HTML файл или загружается отдельно. Этот файл очень напоминает по структуре файлы типа INI. Один файл CSS может задавать оформление тысяч страниц. Забудьте про тэги FONT (теперь это стало дурным тоном), всё оформление сайта будет задаётся в одном месте. Например, если указать P {color: red;} то на всех страницах сайта цвет абзацев (<P>) изменится на красный. В комплекте с Macromedia HomeSite есть замечательная программа Top Style 2 для визуального редактирования CSS файлов. В Dreamweaver есть встроенный редактор. Это действительно стоит попробовать и на это действительно стоит потратить время!
Главное правило - графики должно быть минимум. Многие любят украшать сайт, как новогоднюю ёлку, да ещё не дай Бог с анимацией. Один рисунок на заголовок (логотип), пара значков, пара фонов для табличных ячеек и всё. Форматы - традиционный GIF, прогрессивный PNG и для фотографий JPEG. Каждый файл - не более 5-10 килобайт. Иной раз заходишь на сайт и видишь: текст давно загрузился, а графические пробелы продолжают заполняться минуты две. А информации четыре строчки! Вот и думаешь, что здесь главное, красивый дизайн или информация? Запомните правило: графики должно быть не больше чем полезной информации, ведь пользователь пришёл к вам не на картинки смотреть, верно?
Сервер - это удалённый (в смысле, где-то далеко) мощный компьютер, постоянно подключенный к Интернету, на котором работает специальная программа-сервер. Когда вы запрашиваете определённую страницу, запрос проходит через сети, маршрутизаторы и т.д., пока наконец не попадёт на сервер назначения. Программа обработает запрос и выдаст вам нужную страницу. В остальном сервер почти ничем не отличается от вашего домашнего компьютера. Странички на сервере хранятся как и у вас - на дисках, в папках. Существуют публичные серверы для публикации сайтов - так называемые хостинг-провайдеры. Вы заходите их сайт, регистрируетесь, платите определённую сумму за услуги (там всё подробно расписано), вам выдаётся учётная запись. Используя выданный вам логин и пароль, вы подключаетесь к хостинг-серверу через FTP-протокол. Это делается при помощи FTP-клиентов, которые чем то напоминают Проводник. Далеко ходить за ним не надо, наверняка у всех есть Total Commander или FAR. Закачали файлы на сервер, ничего сложного в это нет, ввели адрес вашего нового сайта (который вы зарегистрировали) и уже ваш сайт в Интернете.
Это уж вы сами должны у себя спросить ещё на стадии "с чего начать" :) Классический сайт по какой-то определённой теме (например, по операционным системам): главная страница с новостями сайта и приглашением, статьи (или файлы или фотографии или то, что на этом сайте основное: анекдоты, научные статьи, рассказы), о сайте (кто, что и для чего делал), опционально можно добавить гостевую книгу (правда не ждите, что в неё так и посыплются слова благодарности, интернетчики - народ ленивый). Главное - информация, информация и ещё раз информация! Если есть информация, то можно в принципе обойтись и без графики и дизайна. Главное чтобы информация была оригинальной, нужной, а главное - уникальной. Клонов по инету и так хватает (сегодня, например обнаружил свои статьи не нескольких похожих сайтах, и это через три дня после публикации!) Да о чём я говорю, посмотрите на другие сайты. Уверен, среди них вы найдёте пример для подражания.
В любой поисковой системе есть раздел сервисов для веб-мастеров. Найдите ссылку вроде "Добавить сайт" и вперёд! Через некоторое время не забудьте проверить, проиндексирован ли ваш сайт. Можно воспользоваться другими сервисами, каталогами, благо их сотни.
См.предыдущий вопрос. Попробуйте связаться с админами сайтов, которые близки к вашему по тематике и обменяться с ними ссылками. Ищите бесплатные каталоги и регистрируйтесь в них. Читайте советы на веб-мастерских сайтах. Можно воспользоваться другими сервисами, каталогами, благо их сотни. Контактируйте, обменивайтесь материалами, размещайте рекламу, идите вперёд!
Вы по-прежнему добавляете статьи и новости, вручную переделывая 50-200 HTML-страниц и закачивая их на сервер? Вам не надоело? Если надоело, то самое время изучить язык программирования PHP или Perl. Написав несколько небольших программ, вы сможете добавлять новости и статьи одним кликом мыши без перевёрстывания страниц и закачивания их на сервер. Кроме этого вы сможете наконец централизованно управлять оформлением сайта, а не лихорадочно менять логотип и копирайт на 100 страницах :) Поменял что-то в одном месте, а программа-движок, написанная вами, естественным образом применит это изменение ко всему сайту.
Perl - это язык программирования, разработанный специально для администрирования в Unix, Linux и подобных ОС. Написанные на это языке программы - скрипты (или сценарии) - отличаются от обычных программ тем, что для них не создаётся исполняемый файл, а текст сценария покомандно выполняется, выводит данные и сразу же завершается. Исходные данные передаются скрипту через командную строку. Всё это очень напоминает работу HTTP-сервера и сценарии Perl стали применять для задач веб-программирования. Например, скрипт вызванный вами, как обычная страница, может вывести данные в виде HTML информацию о товарах, хранящиеся в базе данных, о курсах валют, полученных с сервера банка, новости, и многое другое. Но поскольку специфика Perl ориентирована именно на администрирование операционных систем, он сложен для начинающих и плохо подходит для создания веб-сайтов. Он сложен в отладке на веб-сервере, ошибки в скриптах не то что исправлять, но и находить трудно. Однако, если вы знаете язык C/C++, освоить Perl вам не составит труда.
PHP - это скриптовой язык, который создавался специально для ведения Web-разработок и может использоваться непосредственно в HTML-коде. Синтаксис языка берет начало из C, Java и Perl и является легким для изучения. Преимущественным назначением PHP является предоставление web-разработчикам возможности быстрого создания динамически генерируемых web-страниц, однако, область применения PHP не ограничивается только этим. Если вы уже немного освоили Perl и считаете слишком сложным, попробуйте PHP - он идеально подходит для создания сайтов даже тем, кто почти совсем не знаком с программированием. Кроме того, то, для чего в Perl пришлось бы писать свои функции, PHP предлагает богатейшую библиотеку стандартных функций, особенно для работы со строками, файлами и базами данных (что наиболее часто требуется в веб-дизайне). Вот пример самых часто применяемых стандартных функций PHP: удаление тэгов из текста, преобразование кодировок, мощные функции для поиска и сравнения строк, чтение и вывод файла, отправка электронного письма в одну команду, рисование произвольных изображений и редактирование фотографий "на лету", подключение и удобное извлечение данных из БД. Но главное это то, что в одном файле можно хранить страницу HTML, а в нужных местах вставлять участки кода PHP, что не позволяет Perl.
Perl будет лучше до тех пор, пока не попробуете PHP :) Однозначно, PHP лучше подходит для задач веб- программирования. На PHP вы быстрее напишете качественный сайт, чем будете разбираться со спецификой Unix и ручным декодированием данных. Perl-интерпретатор создаёт большую нагрузку на сервер в момент запуска (это не относится к серверам, где есть mod_perl, встроенный в сервер). Perl-скрипты труднее отлаживать на сервере, они не выводят ошибок напрямую, а генерируют "ошибку 500". Приходится просматривать огромные логи в поисках именно этой ошибки. PHP всегда в случае ошибки выводит подробнейшую информацию прямо в окно браузера.
Начать следует с загрузки последней версии дистрибутива PHP с официального сайта для вашей ОС. Загрузив zip-архив, распакуйте его в директорию c:\php. Оттуда же обязательно стоит скачать CHM-файл с подробной документацией по каждой функции на русском языке. Там есть много примеров, по которым быстро учишься. За день реально написать простую страничку, а то и небольшой сайт.
Многие сразу же пытаются запустить php.exe в надежде, что вот они прям щас наберут прогу и запустят её, но почему-то выскакивает какое-то чёрное окно и на этом знакомство с PHP, как ни печально, заканчивается. Как все привыкли к Windows-окнам! PHP - это вам не Блокнот или Turbo Pascal, а интерпретатор с интерфейсом командной строки. Научитесь наконец различать две простые вещи - интегрированная среда разработки и компилятор (интерпретатор). Напишите простую программу <? echo "Hello, World!"; ?>, сохраните её в файл test.php. Теперь откройте командную строку (cmd) и введите "c:\php\php.exe test.php" (не забыв указать нужные пути). На экране будет выведено заветное "Hello, World!". Посмотрите документацию. Усложните программу так, чтобы она вместо надписи выводила полноценную HTML-страницу. И помните, таким способом писались самые лучшие программы 20 лет назад.
Браузер показывает только то, что он сам получает. Если он получает текстовый файл, он и показывает текстовый файл. Если он получает HTML-файл, он показывает веб-страницу. Скрипт на PHP должен выводить данные в виде HTML-страницы. Однако, этот скрипт должен быть ещё и выполнен интерпретатором PHP, чтобы эти данные могли быть сгенерированы и выведены. Для того чтобы запускать PHP-скрипты в браузере, нужно будет установить на ваш компьютер программу-сервер (см. выше). Тогда, запросив в браузере http://localhost/test.php мы сможем увидеть результаты работы нашего скрипта. О серверах и их настройке для работы с PHP читайте ниже.
Одна из лучших программ на мой взгляд PHP Expert Editor. Она позволяет редактировать несколько файлов одновременно, работает напрямую с FTP-серверами, имеет библиотеки ключевых слов и функции для HTML, CSS, JavaScript, PHP (практически отпадает необходимость пользования дополнительной литературой и программами), интегрируется с CHM-справкой по PHP (наводим текстовый курсор на функцию и по Ctrl+F1 получаем справку по этой функции), имеет панель инструментов для быстрой вставки тэгов HTML (как в "Ворде", отпадает необходимость редактировать файл в HTML-редакторе). Одно из важнейших достоинств этой программы - он имеет в своём составе мини-HTTP-сервер. Он запускается автоматически при нажатии F9, выполняет ваш скрипт и показывает сгенерированную страницу во встроенном браузере. Так что на первых порах можно обойтись вовсе без HTTP-сервера. Да что говорить, удобная программа и всё тут! А главное - бесплатная для пользователей из России. Есть поддержка русского языка, для этого скачайте файл русификации. Регистрация бесплатна.
Это принципиально разные технологии. Тем, кто так спрашивает кажется что JavaScript и PHP выполняют сходные функции, но это не совсем так. Дело в том, что код JavaScript, событийный язык, его код интерпретируется непосредственно после загрузки в браузере пользователя. Этот язык ориентирован на управление поведением браузера. Кроме того, JavaScript может взаимедействовать с пользователем через браузер и другие элементы интерфейса. PHP является серверным скриптовым языком и выполняется на сервере целиком и только один раз до того, как результат будет отправлен пользователю. Вы должны понять, что скрипт, отработав на сервере один раз от начала до конца, сразу же отправляет данные и немедленно закрывается. JavaScript чаще всего работает в интерактивном режиме, мы можем сколько угодно кликать на кнопки (вызывать событие) и скрипт каждый раз будет выполнять задуманное действие (функцию), чего не делает PHP. Однако совместить JavaScript и PHP всё же можно, генерируя JavaScript код с помощью операторв PHP также, как вы генерируете HTML...
MySQL - один из лучших SQL-серверов баз данных типа "клиент-сервер". Завоевал огромную популярность благодаря тому, что является бесплатным, легко устанавливается и настраивается, использует самые передовые технологии и алгоритмы управления данными, существует для любых платформ, постоянно развивается и совершенствуется, имеет дружественный к программистам интерфейс... В общем, связка PHP-MySQL стала поистине массовой. А благодаря PHP, где поддержка этой базы данных встроена в стандартную поставку, эта СУБД стала доступна не только профессионалам, но и многим начинающим пользователям. Если раньше вы хранили ваши данные в файлах, то переход на MySQL избавит вас от головных болей при написании процедур извлечения, сортировки, изменения записей. Эти задачи будут выполняться при помощи нескольких простых и понятных команд SQL. Один мой знакомый на предложение попробовать MySQL сказал: "Он сложный и непонятный". Так вот, это неправда. Сначала скачивается свежий дистрибутив здесь (рекомендуется 4 версия, как наиболее распространённая), нужные "довески" вроде драйвера ODBC (пригодится при интеграции ваших приложений и Windows с MySQL). Устанавливается MySQL очень просто, как и любая другая программа, конфигурируется в два клика. Из раздела документации можно скачать огромнейшее подробнейшее руководство на чистом русском языке с примерами и учебником SQL.
Для удобной работы с MySQL существует целая библиотека функций. Описывать их все нет смысла. Процесс получения данных можно разделить на следующие части. Соединение с сервером MySQL, выборка БД, посылка запроса, циклическое чтение строк результата и их вывод в нужном формате, освобождение памяти от данных результата, закрытие соединения. Очень хорошо это видно в примере. Скрипт подключается к базе, выбирает данные из таблицы и выводит их на экран.
К примеру, вот простой скрипт сложения двух чисел. Состоит из двух частей: HTML-форма и код вывода суммы. Числа из полей ввода A и B передаются в этот же скрипт методом POST в виде переменных $a и $b, и если они были переданы, то есть не пустые, то под формой выводится результат.
Движки бывают разные, но общая идея такова: вы создаёте один главный скрипт index.php (назовём его ядром), который содержит типовой шаблон страницы, один файл с библиотекой нужных вам функции (например, подключение к базе, выборка данных), и много-много файлов модулей, которые будут вызываться из ядра. Например, модуль новостей будет вызываться по запросу index.php?mod=news. Ядро загрузит модуль news.php (он содержит только логику извлечения новостей из базы), выведет шапку страницы, блок новостей, сгенерированнный news.php, а затем низ страницы. Вместо модулей можно применять статические HTML-блоки. Главное, что даёт такая система - единый шаблон, все нужные операции и переменные описаны в одном месте - ядре, а другие подключаются по мере необходимости из внешней библиотеки. Вот пример простейшего шаблонного движка. top.php и bottom.php - соответственно верх и низ страницы. Можно их конечно сразу тут же в виде HTML выводить, это кому как нравится. Вызываем модуль, как говорилось выше, index.php?mod=имя_модуля. Если параметр mod не указан, по умолчанию загрузится модуль с именем index.php (там будет содержимое вашей главной страницы). В серединке выводится результат выполнения вашего модуля mods/$mod.php. Этакий бутерброд :) Сам модуль может содержать всё что угодно. Написав ядро, сосредоточтесь именно на них. Каждый из них будет представлять собственный раздел сайта, новую страницу. Сложные движки позволяют не только показывать информацию, но и добавлять и изменять содержимое сайта с помощью БД MySQL (те же новости или гостевая книга). Создавая новые модули, вы сможете наращивать возможности вашего сайта, не затрагивая уже работающих частей. По такой схеме делаются сотни сайтов и в этом нет ничего сверхъестественного.
В сети существует огромное количество форумов: с БД или без, платные и бесплатные, простые и навороченные. Почти все современные форумы используют СУБД MySQL. Поэтому, прежде чем скачать и установить форум, узнайте, поддерживается ли MySQL у вас на сервере. Если нет, тогда придётся поискать готовые решения на основе файлов. Если вы не нашли ничего подходящего для ваших нужд, придётся вам писать свой форум или попросить друга. Готовые форумы можно автоматически установить из панели управления CPanel, если она есть на вашем хостинге (скорее всего, хостинг у вас платный).