BigEdu.ru
» » » СУЧАСНІ ІНТЕРНЕТ-ТЕХНОЛОГІЇ
Вернуться назад

СУЧАСНІ ІНТЕРНЕТ-ТЕХНОЛОГІЇ

1.1. Web-дизайн і браузери
Багато Web-дизайнерів сходяться на думці, що одна з головних
проблем Web-дизайну - різноманіття браузерів і платформ, кожна з яких по-різному підтримує HTML і сценарії. З випуском кожного нового браузера поліпшуються їх характеристики і можливості, але це не означає, що більш ранні версії при цьому зникають. В більшості своїй люди не схильні гнатися за новітнім і кращим. Одні задовольняються тим, що у них є, а інші, найімовірніше, працюють на комп'ютерах фірм або установ, які вибрали браузери за них.
Як зробити дизайн Web-сторінки естетично і технічно цікавим, не ігноруючи при цьому власників попередніх версій браузерів? Невже Web-сторінка, розрахована на те, щоб функціонувати на будь-яких браузерах, повинна бути обов'язково скучною? Чи можна догодити всім? І якщо ні, то де провести лінію? Скільки старих версій працюватиме з вашою сторінкою?
В Web-дизайні немає жорстких правил. Оскільки головна наша задача - зробити вміст сторінки доступним для максимальної кількості користувачів, то для просування вперед однаково важливі і експеримент, і використовування нових технологій з урахуванням існуючих реалій. Запорука успіху дизайнерського рішення лежить в розумінні потреб аудиторії і в чіткому уявленні, як сайт буде використаний.
Браузери Netscape Navigator і Microsoft Internet Explorer. На ринку домінують два основних браузера: Netscape Navigator і Microsoft Internet Explorer. Разом вони, включаючи всі їх версії, представляє приблизно 90 % (або більш) браузерів, що використовуються сьогодні.
Ці два браузера конкурують між собою за панування на ринку. Результатом їх боротьби стала колекція фірмових HTML-тегов, а також несумісні реалізації різних технологій (сумно відомий Dynamic HTML, a також javascript і Cascading Style Sheets - каскадні таблиці стилів). З другого
боку, конкуренція між Netscape і Microsoft в цілому сприяла більш швидкому розвитку середовища Web.
Більшість Web-авторів в своїй роботі орієнтується на Navigator і Internet Explorer, оскільки вони займають левову частку ринку. Проте, існує ряд інших браузерів, які ви можете брати до уваги.
У версії Internet Explorer 4.0 для комп'ютерів Macintosh відсутня значна частина функціональних можливостей версії, створеної для Windows, тому використовування ряду особливих можливостей версії 4.0 може виключити з гри деяких користувачів.
Деякі документовані відмінності включають: відсутність підтримки вбудовуваних шрифтів; відсутність підтримки фільтрів CSS і переходів (візуальних ефектів, таких як тіні, відкидані об'єктом, які використовуються для елементів тексту); відсутність елементів управління мультимедіа (ефекти переходів і анімації, звичайно створювані авторськими мультимедійними програмними засобами); проблеми з реалізацією DHTML.
Не дивлячись на заяви Microsoft, що DHTML підтримується всіма платформами, він особливо ненадійний на комп'ютерах платформи Macintosh.
Браузери America Online. Користувачі America Online (AOL) використовують один з семи можливих браузерів (залежно від платформи і версії програмного забезпечення AOL), деякі з них забезпечують тільки наймінімальнішу підтримку HTML.
Остання версія America Online для PC — це версія 3.0, використовує адаптовану версію браузера Microsoft Interne Explorer 3.0. Проте, не завжди можна повністю покластися на цю версію так само, як на стандартний варіант MS Internet Explorer 3.0. (Функціональність особливо обмежена для користувачів комп'ютерів Macintosh). Багато розробників Web не раз жахалися, побачивши дизайн свого сайту (який прекрасно працював в
більшості основних браузерів), після того, як він був запущений в системі AOL і відображений одним з їх браузерів.
Проблеми частково виникають через те, що AOL покладається на прокси-сервери і методи стиснення зображень. Відомо, що AOL метод стиснення зображення, що використовується, має проблеми з відображенням JPEG-графіки, що виявляються в появі плям і кольорових смуг. Були відзначені проблеми і при виведенні фонових зображень.
Крім того, деякі технології, такі як Java і Cascading Style Sheets (каскадні таблиці стилів), не доступні для користувачів Windows 3.0 (приблизно 40 % користувачів AOL). Власники комп'ютерів Macintosh не зможуть використовувати javascript і ряд інших можливостей (приблизно 8 % користувачів).
На щастя, створений спеціальний сайт в допомогу тим Web-дизайнерам, які прагнуть зробити свої сторінки цікавими і доступними для користувачів AOL. Особливої уваги заслуговує таблиця браузерів, де ви знайдете спеціальний список для кожного з браузерів (за версіями і платформами), перелік технологій і підтримуваних функцій, а також відсоток збоїв для кожного з браузерів. (Адреса сайту AOL для Web-дизайнерів: http://webmaster.info.aol.com).
WebTV. WebTV приводить в наші квартири Web через звичайний телевізор з пультом дистанційного керування (також, за бажанням, можна використовувати клавіатуру). Для проглядання Web-сторінок WebTV використовує власний спеціалізований браузер. Він здійснює синтаксичний аналіз у відповідності — із стандартом HTML 3.2, але не надає можливостей відображення фреймів, Java, javascript, ActiveX або будь-якого іншого формату, який вимагає вбудовуваних додатків (за винятком вбудованих Shockwave і RealAudio 3.0). Також створене багато нових фірмових HTML-тегов, які використовуються тільки в WebTV.
Оскільки WebTV виводить зображення на екран телевізора, пред'являються нові вимоги до характеристик кольору і параметрів екрану.
Opera. Opera - це маленький і простенький браузер, створений норвезькою компанією Opera Software в Осло. Цей браузер володіє виключно малим часом завантаження і мінімальними вимогами до об'єму диска. Гідністю Opera є повна відповідність стандартам HTML, неточності в написанні тегів (наприклад, пропущені закриваючі теги, неправильне вкладення і т. д.), які пропускають більш солідні браузери, правильно не відображатимуться цим браузером. Opera 5.0 підтримує Java, каскадні таблиці стилів і DHTML.
Хоча Opera і не стоїть на перших місцях по частоті використовування, але багато розробників продовжують тестувати свої сайти в Opera, щоб переконатися в правильності коду.
Lynx. Lynx - це поширюваний безкоштовно браузер, що забезпечує проглядання тільки тексту, пропонує вам швидкий і надійний доступ в Web. Він заслужив популярність як якнайменший загальний знаменник стандарту, придатний для тестування Web-сторінки по базових функціональних характеристиках. Не дивлячись на простоту, цей браузер не застаріває. Lynx постійно удосконалюється і модернізується. Зараз він забезпечує підтримку таблиць, форм і навіть javascript!
Люди дійсно використовують Lynx, тому не варто дивуватися, якщо клієнт замовить розробку сайту для Lynx. Цей браузер також важливий для інвалідів по зору: вони використовують Lynx разом з мовними пристроями.
Буде легше ухвалити рішення, яку технологію використовувати і де провести лінію для зворотної сумісності, якщо знати, які браузери використовуються частіше за все. Найдостовірнішу інформацію, звичайно, можна одержати, ведучи статистику відвідин сайту.
Відстежуюче програмне забезпечення серверів звичайно класифікує відвідини після браузерах, що здійснюють запити. Тому, якщо ви взнали, що
тільки 20 % відвідувачів вашого сайту використовують версії браузерів 4.0, то, можливо, слід почекати з переходом на використовування таблиць стилів. В Інтернеті можна знайти декілька сайтів, що надають статистичні дані про браузерах. Статистика на цих сайтах заснована на аналізі відвідуваної самих цих сайтів, що звужує статистичну вибірку до вузького круга користувачів, що цікавляться такого роду сайтами, - можливо, користувачі, що цікавляться придбанням нових автомобілів або програмами телепередач, використовують інші браузери. Статистичні дані, поміщені на сайті BrowserWatch, дають найдокладніші відомості про версії, підверсіях і під-підверсіях кожного окремого браузера.
1.2. Мова розмітки гіпертекстових сторінок HTML
Мова розмітки гіпертекстових сторінок (HTML - Hypertext Markup Language) е мовою, розробленим спеціально для створення Web-документів. Він визначає синтаксис і розміщення спеціальних інструкцій (тегів), які не виводяться на екран, але указують браузеру, як відображати вміст документа. Він також використовується для створення посилань на інші документи, локальні або мережні, наприклад, що знаходяться в мережі Інтернет.
Стандарт HTML і інші стандарти для Web розроблені під керівництвом консорціуму W3C (World Wide Web Consortium). Стандарти, специфікації і проекти нових пропозицій можна знайти на сайті http://www.3w.org/. В даний час діє специфікація HTML 4.0, підтримка якої з боку основних браузерів постійно росте.
На практиці на стандарт HTML великий вплив надає наявність тегів, запропонованих і підтримуваних найвідомішими браузерами, такими як Microsoft Internet Explorer і Netscape Navigator. Ці теги в даний момент можуть як входити, так і не входити до складу діючої специфікації HTML.
Інформації по тегах HTML Compendium (коротке керівництво по HTML) створений Ron Woodall. Компендіум містить список тегів і їх
атрибутів в алфавітному порядку, а також оновлену інформацію про підтримку кожного з них з боку браузерів. Компендіум HTML знаходиться на сайті http://www.htmlcompendiшn.oгg.
Інструментарій редагування HTML. Документи HTML є звичайними текстовими ASCII-файлами. Це означає, що для їх створення можна використовувати будь-якого текстового редактора, навіть з мінімальними можливостями. Існують засоби редагування, розроблені спеціально для написання HTML. Вони дозволяють економити час, оскільки містять клавіші швидкого доступу для виконання операцій, що повторюються, наприклад, завдання початкових установок документів, таблиць або просто вживання стилів до тексту. Редактори HTML відрізняються від авторського WYSIWYG-інструментарію (що розглядається далі) тим, що вимагають знання правил складання HTML уручну, редактори лише спрощують і прискорюють цей процес.
Користувачам Windows безумовно слід перевірити HomeSite, могутній і недорогий редактор HTML компанії Allaire Corporation. В ньому є засобу для виділення кольорами синтаксичних конструкцій HTML, функція FTP, контроль синтаксису і правописи, багатофайловий пошук і заміщення. Крім того, він містить спеціальні команди і шаблони для створення складніших елементів (фреймів, сценаріїв javascript і DHTML). Інформація і демонстраційна програма для завантаження знаходяться за адресою http://www.allaire.com/.
При роботі на комп'ютерах Macintosh звертають увагу на BBEdit, комерційного HTML-редактора компанії Bare Bones Software, Inc. Він дійсно має вагу серед Web-розробників для для комп'ютерів Macintosh. В його склад входять зручні і швидкі HTML-інструменти, багатофайловий пошук і заміна, вбудована FTP-функція, підтримка 13 Моваів програмування, будівник таблиць, контроль синтаксису HTML і ще безліч функцій. Додаткові
відомості і демонстраційну програму можна знайти за адресою http://www.bbedit.com.
Авторський інструментарій WYSIWYG. Останні роки характеризуються різким зростанням ринку авторських інструментів. HTML-редактори класу WYSIWYG (What You See Is What You Get - що бачиш, то і одержиш) мають графічні інтерфейси, які роблять написання HTML більше схожим на програму редагування текстів або розмітки сторінки. Первинною метою цих програм було звільнення користувачів від тегів HTML, на зразок того, як програми розмітки сторінок захищають розробника від набору команд Мова PostScript. Сьогодні їх значущість зросла, оскільки вони підвищують ефективність і рівень автоматизації виробництва документів, забезпечуючи в той же час доступ до початкового тексту HTML.
Найпопулярнішими в даний час WYSIWYG-редакторами є: Macromedia Dreamweaver, Golive CyberStudio (тільки для комп'ютерів Macintosh), Microsoft FrontPage, FileMaker Claris, Home Page, Adobe PageMill.
Теги HTML. Документ HTML містить текст (вміст сторінки) і вбудовані теги - інструкціями про структуру, зовнішній вигляд і функцію вмісту. Документ HTML розділяється на дві основні частини: заголовок -head і тіло - body. Заголовок містить такі відомості про документ, як його назва і методична інформація, що описує вміст. В тілі знаходиться саме містимо документа (те, що виводиться у вікні браузера).
Кожний тег складається з імені, за яким може слідувати список необов'язкових атрибутів, всі вони знаходяться усередині кутових дужок . Вміст дужок ніколи не виводиться у вікні браузера. Ім'я тега, як правило, є абревіатурою його функції, що полегшує його запам'ятовування. Атрибути є властивостями, які розширюють або уточнюють функцію тега. Як правило, ім'я і атрибути усередині тега не чутливі до регістра. Тег працюватиме так само, як . Проте
значення певних атрибутів можуть бути чутливі до регістра. Це відноситься, зокрема, до імен файлів і URL.
Контейнери. Більшість тегів є контейнерами. Це означає, що у них є початковий (відкриваючий або стартовий) і кінцевий (закриваючий) теги. Текст, що знаходиться між тегами, виконуватиме інструкції, що містяться в них. Наприклад:
Weather is gorgeoustoday.
Результат: Weather is gorgeous today.
Кінцевий тег має те ж ім'я, що і початковий, але перед ним стоїть
сл ш (/). Його можна розглядати як "вимикач" тега. Кінцевий тег ніколи не містить атрибутів.
В деяких випадках кінцевий тег не обов'язковий, і браузер визначає кінець тега з контексту. Частіше за все опускають кінцевий тег (абзац). Браузери раніше підтримували цей тег без відповідного завершення, тому багато авторів Web звикли використовувати коротку форму. Це дозволено не всім тегам, і не всі браузери прощають їх відсутність. Тому, якщо є сумніви, включіть в текст закриваючий тег. Це особливо важливо, коли в документі ви використовуєте каскадні таблиці стилів.
Автономні теги. Деякі теги не має завершальних тегов, тому що вони використовуються для розміщення окремих (автономних) елементів на сторінці. Одним з них є тег зображення , він просто поміщає графіку в потік сторінки. Інші автономні теги — це розривши рядки (
), горизонтальна лінія (
) і теги, що містять інформацію про документ і не впливаючі на вміст, що виводиться на екран, такі як і .
Атрибути. Атрибути додаються в тег для розширення або модифікації його дій. До одного тегу можна додати декілька атрибутів. Якщо атрибути тега слідують після імені тега, вони розділяються одним або декількома пропусками. Порядок проходження не важливий. Більшість атрибутів має значення, які слідують за знаком рівності (=), що знаходиться після імені атрибута. Довжина значень обмежена 1024 символами. Значення
можуть бути чутливі до регістра. Іноді значення повинні знаходитися в лапках (подвійних або одинарних). Правила запису значення наступні:
- якщо значення є одним словом або числом і складається тільки з букв (a-z), цифр (0-9) і спеціальних символів (точка або дефіс ), то можна помістити його після знака рівності без лапок;
- якщо значення містить декілька слів, розділених комами або пропусками, або містить спеціальні символи, відмінні від крапки або дефіса, тоді його необхідно помістити в лапки. Наприклад, URL вимагають лапок, тому що вони містять символи "://". Також лапки необхідні при завданні значень кольорів з використанням формату "#rrggbb".
Якщо ви не упевнені, чи варто використовувати лапки, використовуйте їх завжди для всіх значень.
В теги HTML можуть поміщатися інші HTML-теги для здійснення дії декількох тегів на один елемент. Це називається вкладенням, і, що б правильне його здійснити, початковий і кінцевий теги вкладеного тега повинні обов'язково знаходитися між початковим наконечним тегами зовнішнього тега, наприклад:
Weather is gorgeous today.
Результат: Weather is gorgeous today.
Помилкою, що часто зустрічається, є перекриття тегів. Хоча частину
браузерів відображають вміст, відзначений таким чином, багато хто не дозволяє порушувати правило, тому важливо розмішати теги правильно. Наступний приклад показує невірне вкладення тегів (помітьте, що тег закривається перед закриттям ):
Weather is gorgeoustoday — дана інформація, ігнорована браузерами.
Інформація, ігнорована браузерами. Деяка информация Ниже приводиться інформація, що міститься в документі HTML, включаючи певні теги, яка ігноруватиметься при перегляді браузерами. В її склад входять:
- розриви рядків. Символи кінця рядків в документі HTML ігноруються. Текст і елементи переноситимуться до тих пір, поки в потоці тексту документа не зустрінеться тег або . Розриви рядків виводяться, якщо текст позначений як текст із заданим форматом ();
- символи табуляції і множинні пропуски. Коли браузер зустрічає в документі HTML символ табуляції і декілька послідовних символів пропуску, він виводить тільки один пропуск. Таким чином, якщо документ містить: "far, far away", браузер виведе "far, far away". Додаткові пропуски можна додати в текстовий потік, використовуючи символ нерозривного пропуску (Snbsp;). Крім того, всі пропуски виводяться, якщо текст є форматованим (знаходиться в тегах );
- множинні -теги. Послідовність тегів , що не перериваються текстом, всіма браузерами інтерпретується як надмірна. Вміст виводитиметься так, як якби був тільки один тег . Більшість браузерів виведе дещо тегів у вигляді декількох переходів на новий рядок;
- нерозпізнавані теги. Якщо браузер не розуміє тег або той був невірно заданий, то браузер його просто ігнорує. Залежно від тега і браузера це може привести до різних результатів. Або браузер нічого не виведе, або він може відобразити вміст тега як звичайний текст;
- текст в коментарях. Браузери не виводять текст між спеціальними елементами , які використовуються для позначення коментарів. Після символів початку коментаря і перед символами закінчення обов'язково повинен знаходитися пропуск. В сам коментар можна поміщати практично все. Коментарі не можна вкладати. В Microsoft Internet Explorer є фірмовий тег, позначаючий коментарі .... Проте, він не підтримується іншими браузерами.
ІЗ. Забезпечення доступності інтернет-магазина
При розробці інтернет-магазина фіксованого розміру, ймовірно, доведеться вибирати для неї розмір екрану. Здоровий глузд підказує, що сторінка повинна бути доступна (і правильно відображатися) для максимально можливого числа користувачів. Ідея проста: необхідно визначити дозвіл дисплея, що часто використовується, і розробити сторінку так, щоб сторінка гарантований заповнювала весь робочий простір.
Більшість дизайнерів рекомендує розробляти сторінки у форматі 640x480, щоб при перегляді користувачам не довелося застосовувати горизонтальну прокрутку. Горизонтальна прокрутка завжди утрудняє сприйняття, тому дизайнери традиційно її відкидають.
Все більше число розробників вважає стандартним дозвіл 800x600. І зовсім одиниці розробляють сторінки для ще більш високих дозволів. Звичайно, ваше рішення, в першу чергу, залежатиме від аудиторії. Наприклад, якщо сайт ресурсів для дизайнерів графіки, то вважаємо, що вони мають дисплеї, принаймні, з дозволом 800x600 або вище, відповідно до чого і розробляється сторінка.
Засоби HTML 4.O. Специфікація HTML 4.0 вводить ряд нових атрибутів і тегів, створених спеціально для того, щоб зробити Web-документи доступними для більш широкого круга користувачів. Стисло перерахуємо деякі нові можливості HTML 4.O. (Розширений список можливостей розміщений на сайті http://www.w3.org/WAI/References/HTML4-access, а повні специфікації даної версії - на сайті http://www.w3.org/TR/REC-html40).
HTML 4.0 пропонує наступні нові можливості, що забезпечують доступність:
- подальше розділення структури документа і його зовнішнього уявлення. Інформацію про стиль HTML 4.0 пропонує розмішувати в каскадних таблицях стилів;
- навігаційна допомога, наприклад, клавіші доступу і індексація порядку табуляції для доступу до елементів сторінки з використовуванням тільки клавіатури;
- рекомендації, що стосуються нової клієнтської карти-зображення, об'єднуючої графічні і текстові посилання;
- нові теги і , які допомагають мовним і іншим пристроям інтерпретувати абревіатури і акроніми;
- можливість логічно групувати рядки і стовпці таблиць, забезпечувати їх заголовками, резюме і довгими описами вмісту, полегшуючи інтерпретацію таблиць;
- можливість групувати елементи управління формами і створювати довгі списки вибору, більш ясні для сприйняття. Елементи форм також доступні через клавіші табуляції і швидкого доступу;
- поліпшений механізм створення альтернативного тексту. Атрибут alt тепер обов'язковий для тега . Щоб забезпечити зв'язок з більш довгими текстовими поясненнями до зображень, введений атрибут longdesc.
Для додавання інформації про будь-який елемент, можна використовувати атрибут title.
Засоби CSS. Каскадні таблиці стилів або CSS (від англійського Cascading Style Sheets) є слідством подальшого розвитку HTML і дають нам можливість перейти на наступний рівень представлення інформації. Таблиці стилів дозволяють розділити смисловий вміст сторіночки і його оформлення.
В перших версіях стандарту HTML не було передбачено ніяких засобів для управління зовнішнім виглядом інформації. Загальна концепція гіпертексту була направлена на доступність інформації для будь-яких пристроїв, здатних відтворювати текст. Для розмітки рекомендувалося використовувати тільки логічні теги, визначаючі заголовки, підзаголовки, списки, абзаци, цитати і т.д. - тобто, ті елементи, які і складають структуру
документа. Інтерпретація ж зовнішнього вигляду залишалася повністю на совісті крайового терміналу.
Проте з тих пір багато що змінилося, і стандарт HTML втратив первинну стрункість. Спочатку Netscape додав "поліпшені теги", які дозволили більш широко управляти зовнішнім виглядом інформації, що представляється. Нововведення прижилося, і всі розширення Netscape сталі стандартом de facto. Потім точно також поступила Microsoft. Коли спохватилися, то HTML був жахливою сумішшю логічних і оформлювальних тегів, несумісних розширень і повністю перестав відповідати первинній концепції - представляти інформацію на будь-якому пристрої незалежно від його характеристик по виведенню інформації.
Тоді була зроблена широкомасштабна стандартизація. Внаслідок чого на світло з'явився стандарт HTML 3.2. Він не був революційним, а лише розставив по місцях всі нововведення І виробив загальні рекомендації для виробників браузерів. Революційні зміни були введеш в новому стандарті -HTML 4.0 або, як його сталі називати, Dynamic HTML. В обіг були введені шари, таблиці стилів і універсальна об'єктна модель браузера.
В новому стандарті спробували повернутися до витоків концепції HTML. Четверта версія, як і перша, рекомендує створювати сторіночки так, щоб вони могли бути відтворені на будь-якому пристрої - будь це 21" дисплей або маленький чорно-білий екран стільникового телефону.
Яким же чином була розв'язана проблема з представленням зовнішнього вигляду інформації? В цьому і полягає революційність підходу. Все оформлення рекомендується винести в зовнішній стильовий файл. Основна ж сторіночка міститиме тільки інформацію і посилання на необхідні стилі.
При показі сторіночки конкретному пристрою винна бути задіяна відповідна випадку таблиця стилів. Для стільникового телефону і дисплея комп'ютера вони, зрозуміло, повинні бути різними. В першому випадку ми
використовуємо мінімальне оформлення, яке дозволить представити інформацію найбільш оптимально і компактно. В другому ж випадку в нашому розпорядженні є все багатство шрифтового і колірного оформлення.
Таблицю стилів потрібно написати всього один раз при створенні сайту для кожного з пристроїв, на якому планується виведення інформації. До того ж таблиця стилів може бути єдиною для цілого сайту. І, отже, не потрібно буде повторювати одні і ті ж описи стилів на кожній із сторінок.
Розміщення всієї стильової інформації в одному зовнішньому файлі відкриває нам і інші корисні можливості - же змінивши вміст тільки одного (!) стильового файлу, ми можемо в лічені секунди змінити весь дизайн сайту. Причому ніяких інших переробок не знадобиться. Зрозуміло, це вірно лише в тому випадку, якщо спочатку сайт був спроектований вірно.
CSS2 (Cascading Style Sheets, Level 2) — сама остання рекомендація по каскадних таблицях стилів, надає механізми для поліпшеної інтерпретації сторінок неграфічними і не візуальними пристроями. Удосконалення включають:
- механізми, за допомогою яких створена користувачем таблиця стилів може замінити всі таблиці стилів більш високих рівнів в каскаді. Це дає кінцевому користувачу можливість повністю управляти відображенням. Користувач дістає можливість створювати таблиці стилів, що настроюються, для виведення сторінок відповідно до спеціальних вимог;
- спеціалізована підтримка для завантажуваних шрифтів - таким чином зменшується тенденція поміщати текст в графіку для поліпшення зовнішнього вигляду сторінки;
- механізми позиціонування і вирівнювання, які відділяють вміст від зовнішнього уявлення. Ці таблиці стилів повинні виключити некоректне використовування тегів HTML для створення особливих ефектів відображення. Теги HTML можна використовувати для логічної
структуризації документа, роблячи його більш простим для інтерпретації не візуальними посередниками;
- засоби управління для звукового виведення доставленої за Web інформацією;
- поліпшені засоби навігації, такі як цифрові маркери, які можна додавати в документ в цілях орієнтації.
Джерела розробки доступних сторінок
1). Офіційний сайт WAI. На ньому є ряд корисних посилань до джерел, пов'язаних з проблемою доступності (http://www.w3.org/WAI).
2).Очень хороше джерело статі і керівництва для авторів HTML розташовано на сайті Фундації сліпих Юрія Рубінського, який є своєрідною зброєю боротьби за права інвалідів на розширений доступ до технологій (http://www.yun.org/Webable).
1.4. Представлення тексту в інтернет-магазині
При створенні професійної графіки для Web використовується текст із згладженими краями. Згладжування - це легка розмитість на нерівних краях, що згладжує переходи між кольорами. Не згладжені краї, навпаки, виглядають зазубленими і східчастими. Виключенням з цього загального правила є текст дуже малого розміру, (10 пунктів і менше), вживання згладжування робить його практично невиразним. Текст малих розмірів виглядатиме набагато краще без згладжування.
Два комплекти шрифтів. При розробці інтернет-магазина засобами базового HTML є два комплекти шрифтів; пропорційний і шрифт фіксованої ширини. Проблема полягає лише в тому, що невідомо, який з них і якого розміру буде використаний при відображенні.
Пропорційний шрифт — інакше "шрифт змінної ширини" для кожного символу виділяє різну кількість місця залежно від його зображення. Наприклад, в пропорційному шрифті заголовна "W" займає більше місця в
рядку по горизонталі, ніж прописна "І". Такі гаринитури, як: Times, Helvetica і Anal є прикладами пропорційних шрифтів.
Web-браузери для більшості текстів на Web-сторінці, включаючи основний текст, заголовки, списки, цитати і т. д., використовують пропорційні шрифти. Як правило, великі уривки основного тексту зручніше читати, коли вони надруковані пропорційними шрифтами. Оскільки більшість користувачів не має часу замінити шрифти, встановлені за умовчанням, з великою вірогідністю можна припустити, що текст на вашій сторінці буде відображений шрифтом Times розміром 10 або 12 пунктів (за умовчанням в Netscape) або Helvetica (за умовчанням в Microsoft Internet Explorer). Але це всього лише загальне правило.
Шрифт з фіксованою шириною надає однакове місце для всіх символів шрифту. Заголовна "W" займає не більше місця, ніж прописна "І". Прикладами шрифтів фіксованої ширини є гарнітури Courier і Monaco. В Web-браузерах шрифти фіксованої ширини використовуються для відображення будь-якого тексту всередині наступних HTML-тегов: , , , ,, .
Оскільки багато людей не міняють настройку шрифтів, встановлену за умовчанням, текст, що знаходиться у вказаних тегах, буде виведений одним з шрифтів типа Courier.
Текст в зображеннях. Дизайнери швидко зрозуміли, що найвірніший спосіб абсолютного контролю над шрифтами - помістити текст в зображення. Можна часто бачити заголовки, підзаголовки і оголошення, виконані у вигляді файлів GIF. Багато Web-сторінок представлено виключно в графіці, яка містить усередині себе весь текст сторінки.
Переваги використовування графіки замість HTML-тексту абсолютно очевидні:
- можна визначати тип шрифту, розмір, інтерліньяж, проміжок між буквами, колір і вирівнювання - всі атрибути, які викликають складнощі тільки в HTML;
- ваша сторінка буде однакова при висновку у всіх графічних браузерах.
Але у цього методу є ряд недоліків:
- зображення завантажується довше, ніж текст, оскільки графічні файли звичайно на декілька порядків більше, ніж HTML-тексти, що мають той же зміст;
- в неграфічних браузерах зміст втрачається. Користувачі, які не можуть (або не хочуть) проглядати графіку, не побачать і тексту. Альтернативний текст (використовується атрибут Alt) на місці графічного зображення допомагає, але його можливості обмежені і це не завжди надійний спосіб ототожнення відсутньої графічної інформації;
- інформацію, що знаходиться в зображенні, не можна індексувати або організувати її пошук. В результаті виключаються з документа важливі частини інформації.
Розмір шрифту. Звичайно розмір шрифту визначається в пунктах (72 пункти (пт) = 1 дюйм висоти шрифту) але, на жаль, ці розміри не достатньо точно переводяться між платформами. Частково це відбувається тому, що їх операційні системи управляють дисплеями з різними дозволами. Звичайно Windows використовує дозвіл екрану 96 точек/дюйм, a MacOS - 72 точек/дюйм. Монітори MultiScan допускай більш високий дозвіл.
Шрифт на екрані дисплея Macintosh має точно такий же розмір, як і при друці (наприклад, 12 пт Times на екрані виглядає так само, як 12 пт Times на папері).
Для шрифтів Microsoft подібна угода не виконується, і розмір шрифту при висновку на екран більше, що полегшує читання з дисплея. В результаті шрифт розміром 12 пт на Windows більше схожий на друкарський шрифт в
16 пунктів. Щоб одержати на Windows друкарський розмір 12 пт, вам потрібно вибрати розмір шрифту 9 пунктів (але тоді користувачі комп'ютерів Macintosh побачать текст майже нерозбірливим, оскільки він буде відображений шрифтом розміром всього 6,75 пт).
1.5. Представлення графіки в інтернет-магазині
На даний момент майже всі зображення в Web, представлені в двох форматах: GIF і JPEG. Третій суперник, заслуговуючий згадки, формат PNG, бореться за підтримку і увагу браузерів. Далі - короткий огляд "великої трійки" графічних форматів онлайна. Більш докладна інформація представлена в розділах, присвячених кожному з форматів.
GIF. GIF - Grafic Interchange Format можна назвати традиційним форматом файлів Web. Він був першим форматом файлів, який підтримувався Web-браузерами, і до цього дня продовжує залишатися основним графічним форматом Web.
Його властивості полягають в наступному:
- підтримує не більше 256 кольорів (менше можна і часто потрібно);
- використовує палітру кольорів;
- використовує стиснення без втрати інформації по методу LZW (який подібний вживаному в архіваторі PKZIP, і, отже, GIF-файли надалі практично не стискаються);
- підтримує чересстрочную розгортку;
- е потоковим форматом, тобто показ картинки починається під час перекачування;
- дозволяє призначити одному з кольорів в палітрі атрибут прозорий, що застосовується при створенні так званих прозорих GIFoe;
- має нагоду збереження в одному файлі декількох зображень, що знаходить своє вживання при виготовленні анімованих GIFos;
- підтримує можливість вставки у файл управляючих блоків, які дозволяють вставляти коментарі у файл (наприклад, про авторські права), здійснювати затримку між показами зображень і т.д.
А зараз трошки роз'яснень - до чого ці властивості можуть привести. Як ми написали, GIF підтримує не більше 256 кольорів, а це значить, що всі зображення, які ми зберігаємо в GIF-форматі, явно або неявно зменшують кількість кольорів, щоб укластися в цей ліміт (різні програми з різним успіхом). А звідси висновок - якщо у узяти красиву фотографію з плавними переходами і ледве уловимими відтінками кольору, то після перетворення все буде набагато гірше - відтінки перестануть бути невловимими, і вся фотографія придбає неприродний, нереалістичний вигляд. Тому, якщо треба все-таки зберегти фотографію у форматі GIF і передати всі відтінки, то доводиться йти на хитрості. Наприклад, до фотографії можна застосувати який-небудь художній фільтр і перетворити її на малюнок або застосувати тонування. Зате немає жодних проблем із збереженням малюнків і креслень в цьому форматі, вони, як правило, добре стискаються і не містять багато кольорів.
JPEG. Другим найпопулярнішим графічним форматом в Web є JPEG - Joint Photographic Experts Group. Він містить 24-розрядну інформацію про колір. Це 16,77 млн кольорів на відміну від 256 кольорів формату GIF. В JPEG використовується так зване стиснення з втратами. Це означає, що деяка інформація про зображення в процесі стиснення відкидається, але в більшості випадків погіршення якості зображення не завдає шкоди і часто навіть не помітне.
Фотографії або будь-які зображення з плавними градаціями кольорів краще всього зберігати в JPEG-форматі, тому що він пропонує більш високу якість зображень, що уміщаються у файл меншого об'єму. Проте, JPEG не є кращим рішенням для графічних зображень з одноколірними областями,
оскільки цей формат має тенденцію цяткувати кольори цятками і кінцевий файл, як правило, буде дещо більше, ніж GIF-файл для того ж зображення.
PNG. Є ще третій графічний формат, що конкурує за постійне використовування в Web. Це формат PNG - Portable Network Graphic, який, не дивлячись на деякі достоїнства, з 1994 р. знаходиться більш менш в тіні. Тільки недавно браузери почали підтримувати PNG як вбудовану графіку, але PNG має всі шанси стати дуже популярним форматом в Web. Саме тому він включений тут в "велику трійку". PNG може підтримувати 8-розрядні індексовані кольори, 16-розрядні півтони або 24-розрядні повнокольорові зображення, використовуючи схему стиснення без втрат. Це забезпечує більш високу якість зображень, а іноді і менший об'єм файлів в порівнянні з форматом GIF. Крім того, файли PNG мають деякі чудові функції, наприклад, вбудоване управління коефіцієнтом гамма, і змінні рівні прозорості (це дозволяє показувати малюнок фону крізь відкидані м'які тіні).
Дозвіл І розмір файлу зображень. Оскільки зображення Web існують тільки на екрані дисплея, буде технічно правильно вимірювати їх дозвіл в пікселах на дюйм (ррі - pixels per inch). Інша одиниця вимірювання дозволу - кількість крапок на дюйм (dpi - dots per inch) відноситься до дозволу друкарських зображень і залежить від дозволу друкуючого пристрою.
Але, оскільки реальні розміри графіки залежать від дозволу дисплея, вимірювання в дюймах стає для Web-оточення неприйнятним. Єдиною значущою одиницею вимірювання стає піксел.
Практично створювати зображення з дозволом 72 ррі (це кращий варіант для уявлення на екрані), звертаючи увагу тільки на загальні розміри в пікселах. В процесі створення графіки на Web можна взагалі не використовувати дюйми. Важливий розмір зображення в порівнянні з іншими зображеннями на сторінці і загального розміру вікна браузера.
Наприклад, багато користувачів як і раніше використовують 14-дюймові дисплеї з дозволом 640x480 пікселів. Щоб гарантувати заповнення графічною заставкою всього простору екрану, краще зробити його шириною не більше 600 пікселів (враховуючи, що частина пікселів справа і зліва буде використана для вікна і для смуги прокрутки). Розмір решти кнопок і зображень на сторінці слід вимірювати в пікселіх щодо банера, має ширину 600 пікселів.
Розмір файлу. Без сумніву, саме графіка зробила Web таким, яким ми його бачимо сьогодні, але як дизайнер ви повинні знати, що багато користувачів випробовують до графіки в Web відчуття на межі любові і ненависті. Не варто забувати, що графіка збільшує час, необхідний Web-сторінці для передачі по мережі; великий об'єм графіки означає істотний час завантаження, який випробовує терпіння читача, особливо якщо він додзвонюється з використанням стандартного модемного з'єднання. В цьому відношенні для Web-дизайнера існує єдине найважливіше правило: розмір файлу графічного зображення повинен бути мінімально можливим? Створення зображень, призначених для передачі по мережі, покладає відповідальність на розробників серйозно відноситися до проблеми часу завантаження.
1.6. Web-сервери
В більшості випадків неможливо уникнути прямого контакту з сервером, навіть якщо йдеться про просте завантаження файлів. З цієї причини всі дизайнери повинні володіти базовими знаннями про сервери і їх роботу. Щонайменше, це допоможе більш чітко спілкуватися з адміністратором серверу. Якщо є дозвіл для більш широкого доступу до серверу, можна вирішувати певні задачі самостійно, без сторонньої допомоги.
Сервер - це будь-яке управляюче комп'ютером програмне забезпечення, яке дає йому можливість виконувати запити на документи або інші дані. Програми, які запрошують і відображають документи (такі як браузер), називаються клієнтами. Терміни "на стороні серверу" і "на стороні клієнта", що використовуються, наприклад, при роботі з картами-зображеннями, відносяться до тієї машини, яка керує процесом. Функції на стороні клієнта виконуються на машині користувача, функції на стороні серверу - на видаленій машині.
Web-сервери відповідають на запити браузерів (клієнтських програм), знаходять задані файли (або виконують сценарій CGI) і повертають документ або результати сценарію. Web-браузери і сервери спілкуються по протоколу Hypertext Transfer Protocol (HTTP, протокол передачі гіпертексту).
Програмне забезпечення серверів. Більшість серверів працює на платформі Unix. Саме тому в світі Web як і раніше використовується термінологія системи Unix. В процесі роботи знадобиться вивчити декілька Unix-команд. Проте відсоток серверів Windows NT, Windows 95 і навіть MacOS постійно збільшується. Деякі серверні пакети пропонують графічний інтерфейс як альтернатива управлінню з командного рядка Unix. Ось деякі відомі сервери: NCSA Server, Apache, CERN, Netscape Servers, Internet Information Server (IIS).
Сьогодні більшість серверів (приблизне 70%) працює на Apache або його попереднику NCSA. Конкретний тип серверу не впливає на велику частину того, що робить дизайнер, наприклад, на створення графіки або розробку базових HTML-файлів. Звичайно, він впливатиме на більш досконалі методи створення Web-сайтів, такі як Server Side Includes (серверні включення), додавання типів МІМЕ і Web-сторінки, керовані базами даних.
Кореневий каталог. Коли браузер запрошує документ, сервер визначає місцезнаходження документа, починаючи з кореневим каталогом документа. Це каталог, який був конфігурований для зберігання всіх
документів, сумісно що використовуються за допомогою Web. Він не обов'язково з'являється в URL, який указує на документ, тому важливо знать, який каталог є кореневим при завантаженні файлів.
Індексні файли. Прямий слеш (/) в кінці URL означає, що URL звертається до каталога, а не до файлу. За умовчанням сервери відображають зміст каталога, вказаного в URL. Більшість серверів, проте, конфігурована так, щоб відображати особливий файл замість списку каталога, цей файл називається індексним. Індексні файли звичайно мають ім'я index.html, але на деяких серверах вони можуть називатися welcome.html або defaulthtml.
Якщо сервер конфігурований на знаходження індексного файлу і не знаходить його, замість нього може бути відображене зміст каталога, але це робить файли уразливими для сторонніх. З цієї причини непогано завжди називати одну із сторінок (звичайно головну) в кожному каталозі index.html (або іншим обумовленим ім'ям).
Заголовки відгуку HTTP. Як тільки сервер визначає місцерозташування файлу, він посилає вміст цього файлу назад браузеру разом з деякими заголовками відгуку HTTP (response headers). Ці заголовки забезпечують браузер інформацією про файл, що прибуває, включаючи його тип даних (також відомий як "тип вмісту" або "тип МІМЕ"). Звичайно сервер визначає формат по розширенню файлу; наприклад, файл з розширенням .gif розпізнається як файл зображення.
Браузер читає інформацію в заголовку і визначає, що робити з файлом. Він може відобразити файл у вікні або запустити відповідний допоміжний або вбудовуваний додаток (plug-ins).
Сценарії CGI. Замість того щоб звертатися до файлів HTML, URL може зажадати запустити програму CGI. CGI розшифровується як Common Gateway Interface (загальний шлюзовий інтерфейс). Він дозволяє Web-серверу спілкуватися з іншими програмами (сценаріями CGI), які працюють на сервері. Сценарії CGI звичайно пишуть на Моваах Perl, 3 або C++.
Сценарії CGI використовують для виконання різноманітних функцій, таких як пошук, управління картами-зображеннями на стороні серверу, гри. Проте найтиповіше використовування сценаріїв - обробка форм.
Більшість адміністраторів серверів дотримується правила берегти сценарії CGI в спеціальному каталозі, озаглавленому cgi-bin (скорочено від CGI-binaries). Коли вони зберігаються в одному каталозі, адміністраторам простіше управляти сервером і забезпечувати його безпеку. Якщо сценарій CGI запрошується браузером, сервер виконує функцію і повертає браузеру динамічний вміст.
Використовування SSI. SSI - Server Side Includes або, по-російськи, - включення на стороні серверу. SSI - це директиви, що вставляються прямо в HTML-код і службовці для передачі вказівок WeB-серверу. Зустрічаючи такі директиви, які називаються SSI-вставками, Web-сервер інтерпретує їх і виконує відповідні дії. Наприклад: вставка HTML-фрагмента з іншого файлу, динамічне формування сторіночок залежно від деяких змінних (наприклад, типу браузера) і інші не менше приємні речі.
Переваги SSI виявляються, коли нам потрібно підтримувати достатньо великий за об'ємом сайт, що має певну структуру і елементи коду, що повторюються, на всіх сторіночках. При вживанні серверних включень сайт зручно розглядати як що складається з окремих блоків, кожний з яких відповідає за свою частину сторіночки. Ці блоки практично незмінні і повторюються від сторінки до сторінки. В ці блоки можна винести такі елементи сторіночки як: головне меню, рекламні вставки, елементи оформлення сторіночок і т.д., що повторюються Фізично ці блоки є просто HTML-файлами, що містять частину коду, потрібну для виконання їх задачі.
Для того, щоб сервер знав, що сторіночка не звичайна, а містить SSI-директиви, вона має спеціальне розширення: *.shtml або *.shtm, наявність якого і примушує Web-сервер заздалегідь обробляти сторіночки. Взагалі-то,
розширення може бути будь-хто - залежно від конфігурації Web-серверу, але в основному застосовується саме *.shtml.
Повна сторіночка формується Web-сервером на льоту, збираючи код сторіночки з таких ось блоків. Для того, щоб вказати серверу, який блок потрібно вставити і в якому місці сторіночки, використовується спеціальна форма запису у вигляді коментаря. Наприклад, ось така:
<!--#command param=ftvalue" —>
де # - ознака початку SSI-вставки; command - SSI-команда; param -параметри SSI-команди.
Перша перевага SSI з погляду дизайнера полягає в тому, що при такому підході Web-майстру, що займається підтримкою сайту, можна не боятися випадково зіпсувати дизайн. Елементи складної верстки приховані за рахунок використовування SSI, і підтримка вмісту сторіночок стає набагато більш легкою і приємною справою.
Друга, не менше важлива перевага, - це можливість миттєвої заміни дизайну сайту, що не вимагає перероблення сторіночок з інформаційним змістом сайту. Для зміни дизайну достатньо переписати SSI-вставки, що формують зовнішній вигляд сайту.
Unix. На комп'ютерах IBM PC і Macintosh більшість функцій можна виконати, використовуючи інструментарій з графічним інтерфейсом. Проте, іноді неможливо знайти заміну для старої сесії Telnet. Telnet - протокол "емузіяції терміналу", що дозволяє вам реєструватися в іншій комп'ютерній системі або мережі, такий як Internet. Цей термін також використовують стосовно будь-якого додатку, що служить для спілкування з використанням протоколу Telnet. Програма Telnet надасть текстове термінальне вікно іншої системи, в якому можна вводити інструкції в командному рядку.
Реєстрація. Коли за допомогою програми Telnet відкривається сеанс зв'язку з видаленим сервером, з'являється запрошення реєструватися в
системі. Перш ніж дістати доступ до серверу, системному адміністратору потрібно встановити для користувача обліковий запис (account) Unix.
При успішній реєстрації, ви одержите підказку системи Unix %, (або іноді #) залежно від різновиду Unix, на якому працює сервер. Це знак, що система готова. З цієї миті використовується програма під назвою shell. Вона інтерпретує друковані вами команди і викликає запрошувані програми. Переміщення в домашній каталог буде автоматичним.
Щоб закінчити сесію Telnet достатньо набрати logout або exit.
Структури каталогів. Оскільки Web є породженням оточення Unix, він слідує багатьом його угодам. Наприклад, щоб в гіперпосиланні правильно вказати шлях, URL, потрібне розуміння організації каталогів на платформі Unix.
Каталоги ("місце зберігання файлів") організовані у вигляді ієрархічної структури. Самий верхній каталог відомий як кореневий і позначається прямим слешем (/). Кореневою може містити декілька каталогів, кожний з яких може мати свої підкаталоги, і т.д. Говорять, підкаталог є "нащадком" каталога, до складу якого він входить (останній називають "батьком").
Ім'я шляху (path name) - це нотація, що використовується для вказівки конкретного файлу або каталога. Воно указує, який шлях потрібно пройти, щоб дістатися до бажаної мети. Є два типи шляхів: абсолютний (з кореневого каталога) і відносний (з каталога в якому знаходишся).
Угоди про імена файлів. Для того, щоб файли вдало подорожували по мережі, потрібно назвати їх відповідно до встановлених угод про імена файлів:
- заборонено використовування пропусків в іменах файлів. Хоча це абсолютно прийнятне для локальних файлів в MacOS і Windows 95/98/NT, пропуски не розпізнаються іншими системами;
- небажане використовування в іменах файлів спеціальних символів, таких як ? % #. Краще обмежитися буквами, цифрами, символом підкреслення (замість пропусків), дефісами і крапками;
- вибір розширення повинен бути правильним. Документи HTML вимагають розширення .html (або htm для серверу Windows). Графічні файли GIF мають розширення .gif, а файли JPEG ~ .jpg або .jpeg. Файли з неправильним розширенням браузер не розпізнає як файли, дозволені для передачі в Web;
- імена файлів HTML чутливі до регістра. Хоча це і не обов'язково, але краще використовувати тільки букви нижнього регістра. Це може полегшити запам'ятовування імен файлів.
Завантаження документе (FTP). Найчастішою транзакцією, з якою Web-дизайнер звертається до серверу, є завантаження на сервер HTML-документів, зображень або мультимедійних файлів. По мережі файли передаються між комп'ютерами за допомогою методу, званого FTP (File Transfer Protocol, протокол передачі файлів). При роботі на Unix в сесії Telnet можна запустити програму ftp і передавати файли з величезним числом аргументів командного рядка.
На комп'ютерах IBM PC і Macintosh є ряд програм FTP з графічними інтерфейсами, які позбавляють від необхідності передавати файли з використанням командного рядка Unix. Більш того, в більшості випадків функції FTP вбудовані безпосередньо в WYSIWYG HTML-редакторів, такі як GoLive Cyberstudio, Claris HomePage i Dreamweaver. На комп'ютерах Macintosh достатньо популярні спеціальні програми, які здійснюють передачу файлів методом "перетягування". На PC є немало простих програм FTP, таких як WS_FTP і AceFTP.
Браузери Netscape Navigator і Internet Explorer також функціонують як прості FTP-клієнти, надаючи можливість як завантажувати, так і вивантажувати файли, використовуючи інтерфейс "drag-and-drop".
Процес FTP. Незалежно від того, який інструментарій використовується, базові принципи і процеси залишаються незмінними.
1. Запуск програми FTP, з'єднання з сервером. Потрібно ввести точне ім'я серверу, реєстраційне ім'я і пароль.
2. Знаходимо каталог, в який потрібно скопіювати файли. Можна також створити новий каталог або видалити існуючі файли і каталоги на сервері, використовуючи засоби управління FTP-програми.
3. Задаємо режим передачі. Головне під час передачі - вирішити, передавати дані в двійковому або ASCII -режиме. ASCII-файли складаються з буквено-цифрових символів. Деякі FTP-програми розглядають файли ASCII як "текстові". Документи HTML слід передавати як ASCII або текст.
Двійкові файли складаються з даних (одиниць і нулів), що відкомпілювалися, їх прикладами є виконувані програми, зображення, фільми і т.д. Деякі програми розглядають двійковий режим як "необроблені дані" ("raw data") або "зображення" ("Image"). Всі графічні (.gif або .jpeg) і мультимедійні файли повинні передаватися як двійкові або "Raw Data". В Fetch (MacOS) ви можете знайти параметр МасВіпагу, який передає файл повністю, разом з гілкою ресурсів (частина файлу, що містить піктограми робочого столу і інші специфічні для комп'ютера Macintosh дані). Цей варіант слід використовувати тільки при передачі з одного комп'ютера Macintosh на іншій. Гілка ресурсів відділяється від мультимедійних файлів, створених на комп'ютерах Macintosh, при передачі в двійковому режимі.
Деякі FTP-програми мають також параметр Auto, який дозволяє вам передавати повністю весь каталог, що містить файли обох типів. Програма перевіряє кожний файл і визначає, чи слід передавати його в текстовому або двійковому режимі. Ця функція не у всіх програмах надійна на 100%, тому треба використовувати її з обережністю, поки не буде упевненості, що результат правильний.
4. Передача файлів на сервер. Стандартний протокол FTP використовує терміни "помістити" ("put") для позначення передачі файлів з комп'ютера користувача на сервер і "одержати" ("get") для позначення завантаження файлу з серверу на комп'ютер, тому вони можуть використовуватися і в програмі FTP. Одночасно можна завантажувати декілька файлів.
5. Роз'єднання. Коли передача закінчена, зв'язок з сервером завершується. Перед цим можна протестувати передані в браузер файли, щоб переконатися, що передача пройшла вдало.
Установка права доступу. При передачі файлів на Web-сервер, потрібно переконатися, що всі права доступу до файлів встановлені таким чином, що кожний може їх прочитати. Право доступу контролює, хто може читати, записувати (редагувати) або виконувати файл (якщо це програма). Права доступу вимагається встановити для власника файлу, групи файлу або для всіх користувачів. Встановлювати права доступу може тільки автор файлу.
Установка права доступу програмою FTP. Деякі FTP-про-грами дозволяють встановлювати право доступу за умовчанням в діалоговому вікні. Для досягнення більшості цілей Web користувачу потрібно забезпечити повний доступ і обмежити всіх інших користувачів тільки можливістю читання. Може знадобитися згода адміністратора серверу з такими установками.
Типи файлів (МІМЕ-типи). Сервери додають до кожного документа заголовок, який повідомляє браузеру, який тип файлу він відправляє. Грунтуючись на цій інформації, браузер визначає, що робити з файлом: або відобразити його вміст у вікні, або запустити відповідний вбудовуваний або допоміжний додаток.
Система для повідомлення мультимедійних типів файлів дуже нагадує МІМЕ (Multipurpose Internet Mail Extension, багатоцільові
розширення поштової служби в Інтернеті), яка була спочатку розроблена для вкладень в листи електронної пошти. Щоб успішно повідомляти тип файлу браузеру, потрібно щоб сервер був конфігурований на розпізнавання будь-якого МІМЕ-типу. Якщо потрібно доставляти дані, що виходять за рамки стандартних HTML-файлів і зображень (наприклад, відео Shockwave Flash або аудіофайли), слід уточнити у адміністратора серверу, чи здатний сервер підтримувати цей МІМЕ-тип. Більшість поширених форматів вбудована в поточні версії програмного забезпечення серверу. Якщо ні, то адміністратор може легко їх встановити, слід лише надати йому необхідну інформацію.
Точний синтаксис для конфігурування МІМЕ-типів варіюється в різних серверних програмах. Проте всім потрібна одна і та ж базова інформація: тип, підтип і розширення. Типи - це самі загальні категорії файлів. Вони включають текст, зображення, аудіо, відео, додаток і т.д. В кожній категорії є ряд підтипів. Наприклад, файловий тип image (зображення) включає підтипи gif, jpeg і т.д. Розширення файлу використовується сервером для визначення типу файлу і його підтипу. Не всі розширення стандартизовані.
2. Мова SQL як стандартний Мова баз даних.
Стрімке зростання популярності SQL є однією з найважливіших тенденцій
в сучасній комп'ютерній промисловості. За декілька останніх років SQL став єдиним Моваом баз даних. На сьогоднішній день SQL підтримують понад сто СУБД, що працюють як на персональних комп'ютерах, так і на великих ЕОМ. Був прийнятий, а потім доповнений офіційний міжнародний стандарт на SQL. Мова SQL є важливою ланкою в архітектурі систем управління базами даних, що випускаються всіма провідними постачальниками програмних
Рис. 2.1. Применение SQL для доступа к базе данньїх
продуктів, і служить стратегічним напрямом розробок компанії Microsoft в області баз даних. Зародившися в результаті виконання другорядного дослідницького проекту компанії IBM, SQL сьогодні широко відомий і як могутній ринковий чинник.
2.1 Мова SQL
SQL є інструментом, призначеним для обробки і читання даних, що
містяться в комп'ютерній базі даних. SQL - ця скорочена назва структурованого Моваа запитів (Structured Query Language). Як випливає з назви, SQL є Моваом програмування, який застосовується для організації взаємодії користувача з базою даних. Насправді SQL працює тільки з базами даних одного певного типу, званих реляційними. На мал. 2.1 зображена схема роботи SQL. Згідно цій схемі, в обчислювальній системі є база даних, в якій зберігається важлива інформація. Якщо обчислювальна система відноситься до сфери бізнесу, то в базі даних може зберігатися інформація про
матеріальні цінності, продукцію, об'єми продажів і зарплату, що випускається. В базі даних на персональному комп'ютері може зберігатися інформація про виписані чеки, телефони і адреси або інформація, витягнута з більш крупної обчислювальної системи. Комп'ютерна програма, яка управляє базою даних, називається системою управління базою даних, або СУБД.
Якщо користувачу необхідно прочитати дані з бази даних, він запрошує їх у СУБД за допомогою SQL. СУБД обробляє запит, знаходить необхідні дані і посилає їх користувачу. Процес запиту даних і отримання результату називається запитом до бази даних: звідси і назва — структурований Мова запитів.
Проте ця назва не зовсім відповідає дійсності. По-перше, сьогодні SQL є чимось набагато більше, ніж простий інструмент створення запитів, хоча саме для цього він і був спочатку призначений. Не дивлячись на те, що читання даних як і раніше залишається однією з найважливіших функцій SQL, зараз цей Мова використовується для реалізації всіх функціональних можливостей, які СУБД надає користувачу, а саме:*
Організація даних. SQL дає користувачу можливість змінювати структуру представлення даних, а також встановлювати відносини між елементами бази даних.*
Читання даних. SQL дає користувачу або додатку можливість читати з бази даних дані, що містяться в ній, і користуватися ними.*
Обробка ванн. SQL дає користувачу або додатку можливість змінювати базу даних, тобто додавати в неї нові дані, а також видаляти або обновляти дані, що вже є в ній.*
Управління доступом. За допомогою SQL можна обмежити можливості користувача по читанню і зміні даних і захистити їх від несанкціонованого доступу.*
Сумісне використовування даних. SQL координує сумісне використовування даних користувачами, що працюють паралель, щоб
вони не заважали один одному. * Цілісність даних. SQL дозволяє забезпечити цілісність бази даних,
захищаючи її від руйнування неузгоджено через зміни або відмову
системи.
Таким чином, SQL є достатньо могутнім Моваом для взаємодії з СУБД.
По-друге, SQL — це не повноцінний комп'ютерний Мова типа COBOL, FORTRAN або 3. В SQL немає оператора IF для перевірки умов, немає оператора GOTO для організації переходів і немає операторів DO або FOR для створення циклів. SQL є підмовою баз даних, в який входить близько тридцяти операторів, призначених для управління базами даних. Оператори SQL вбудовуються в базовий Мова, наприклад COBOL, FORTRAN або 3, і дають можливість діставати доступ до баз даних. Крім того, з такого Моваа, як 3, оператори SQL можна посилати СУБД в явному вигляді, використовуючи інтерфейс викликів функцій.
Нарешті, SQL — це слабо структурований Мова, особливо в порівнянні з такими сильно структурованими Моваами, як 3 або Pascal. Оператори SQL нагадують англійські пропозиції і містять "слова-пустушки", що не впливають на значення оператора, але полегшуючі його читання. В SQL майже немає нелогічностей, до того ж є ряд спеціальних правил, що запобігають створенню операторів SQL, які виглядають як абсолютно правильні, але не мають сенсу.
Не дивлячись на не зовсім точну назву, SQL на сьогоднішній день є єдиним стандартним Моваом для роботи з реляційними базами даних. SQL — це достатньо могутній і в той же час відносно легкий для вивчення Мова.
2.2 Роль SQL
Сам по собі SQL не є ні системою управління базами даних, ні окремим
програмним продуктом. Не можна піти в комп'ютерний магазин і "купити SQL". SQL — це невід'ємна частина СУБД, інструмент, за допомогою якого здійснюється зв'язок користувача з нею. На мал. 2.2. зображена структурна
схема типової СУБД, компоненти якої з'єднуються в єдине ціле за допомогою SQL (свого роду "клею").
Ядро бази даних є серцевиною СУБД; воно відповідає за фізичну структуризацію і запис даних на диск, а також за фізичне читання даних з диска. Крім того, воно приймає SQL-запити від інших компонентів СУБД (таких як генератор форм, генератор звітів або модуль формування інтерактивних запитів), від призначених для користувача додатків і навіть від інших обчислювальних систем. Як видно з малюнка, SQL виконує багато різних функцій: * SQL — інтерактивний Мова запитів. Користувачі вводять команди SQL в
Рис. 2.2. Компоненти типичной СУБД
інтерактивні програми, призначені для читання даних і відображення їх на екрані. Це зручний спосіб виконання спеціальних запитів. * SQL — мова програмування баз даних. Щоб дістати доступ до бази даних,
програмісти вставляють в свої програми команди SQL. Ця методика використовується як в програмах, написаних користувачами, так і в службових програмах баз даних (таких як генератори звітів і інструменти введення даних).*
SQL — Мова адміністрування баз даних. Адміністратор бази даних, що знаходиться на міні-комп'ютері або на великій ЕОМ, використовує SQL для визначення структури бази даних і управління доступом до даних.*
SQL — Мова створення додатків клієнт/сервер, І програмах для персональних комп'ютерів SQL використовується для організації зв'язку через локальну мережу з сервером бази даних, в якій зберігаються дані, що спільно використовуються. В більшості нових додатків використовується архітектура клієнт/сервер, яка дозволяє звести до мінімуму мережний трафік і підвищити швидкодію як персональних комп'ютерів, так і серверів баз даних.*
SQL — Мова розподілених баз даних. В системах управління розподіленими базами даних SQL допомагає розподіляти дані серед декількох взаємодіючих обчислювальних систем. Програмне забезпечення кожної системи за допомогою використовування SQL зв'язується з іншими системами, посилаючи їм запити на доступ до даних.*
SQL — Мова шлюзів бази даних. В обчислювальних мережах з різними СУБД SQL часто використовується в шлюзовій програмі, яка дозволяє СУБД одного типу зв'язуватися з СУБД іншого типу. Таким чином, SQL перетворився на корисний і могутній інструмент, що
забезпечує людям, програмам і обчислювальним системам доступ до
інформації, що міститься в реляційних базах даних.
23 Переваги SQL
SQL — це легкий для розуміння Мова і в той же час універсальний
програмний засіб управління даними.
Успіх Мовау SQL принесли наступні його особливості:*
незалежність від конкретних СУБД;*
переносимість з однієї обчислювальної системи на іншу;*
наявність стандартів;*
схвалення компанією IBM (СУБД DB2);*
підтримка з боку компанії Microsoft (протокол ODBC);*
реляційна основа;*
високорівнева структура, що нагадує англійську мову;*
можливість виконання спеціальних інтерактивних запитів:*
забезпечення програмного доступу до баз даних;*
можливість різного представлення даних;*
повноцінність як Моваа, призначеного для роботи з базами даних;*
можливість динамічного визначення даних;*
підтримка архітектури клієнт/сервер.
Всі перераховані вище чинники з'явилися причиною того, що SQL став стандартним інструментом для управління даними на персональних комп'ютерах, міні-комп'ютерах і великих ЕОМ. Нижче ці чинники розглянуті більш детально.
2.4 Незалежність від конкретних СУБД
Всі провідні постачальники СУБД використовують SQL, і жодна нова СУБД, не підтримуюча SQL, не може розраховувати на успіх. Реляційну базу даних і програми, які з нею працюють, можна перенести з однією СУБД на іншу з мінімальними доробками і перепідготовкою персоналу. Програмні засоби, що входять до складу СУБД для персональних комп'ютерів, такі як програми для створення запитів, генератори звітів і генератори додатків, працюють з реляційними базами даних багатьох типів. Таким чином, SQL забезпечує незалежність від конкретних СУБД, що є однією з найважливіших причин його популярності.
2.5 Переносимість з однієї обчислювальної системи на інші
Постачальники СУБД пропонують програмні продукти для різних обчислювальних систем: від персональних комп'ютерів і робочих станцій до локальних мереж, міні-комп'ютерів і великих ЕОМ. Додатки, створені за допомогою SQL і розраховані на розраховані на одного користувача системи, у міру свого розвитку можуть бути перенесені в більш крупні системи. Інформація з корпоративних реляційних баз даних може бути завантажена в бази даних окремих підрозділів або в особисті бази даних. Нарешті, додатки для реляційних баз даних можна спочатку змоделювати на економічних персональних комп^ютерах, а потім перенести на дорогі розраховані на багато користувачів системи.
2.6 Стандарти мови SQL
Офіційний стандарт Моваа SQL був опублікований американським інститутом національних стандартів (American National Standards Institute — ANSI) і Міжнародною організацією за стандартами (International Standards Organization — ISO) в 1986 році і значно розширений в 1992 році. Крім того, SQL є федеральним стандартом США по обробці інформації (FIPS — Federal Information Processing Standard) і, отже, відповідність йому є однією з основних вимог, що містяться у великих урядових контрактах, що відносяться до області обчислювальної техніки. В Європі стандарт X/OPEN для переносимого середовища програмування на основі операційної системи UNIX включає SQL як стандарт для доступу до баз даних. SQL Access Group — консорціум постачальників комп'ютерного устаткування і баз даних — визначив для SQL стандартний інтерфейс викликів функцій, який є основою протоколу ODBC компанії Microsoft і входить також в стандарт X/OPEN. ІД стандарти служать як би офіційним друком, схвалюючої SQL, і вони прискорили завоювання їм ринку.
2.7 Реляційна основа
SQL є Моваом реляційних баз даних, тому він став популярним тоді, коли
популярною стала реляційна модель представлення даних. Таблична
структура реляційної бази даних інтуїтивно зрозуміла користувачам, тому Мова SQL є простим і легенею для вивчення. Реляційна модель має солідний теоретичний фундамент, на якому були засновані еволюція і реалізація реляційних баз даних. На хвилі популярності, викликаної успіхом реляційної моделі, SQL став єдиним Моваом для реляційних баз даних.
2.8 Високорівнева структура, що нагадує англійську мову
Оператори SQL виглядають як звичайні англійські пропозиції, що спрощує
їх вивчення і розуміння. Частково це обумовлено тим, що оператори SQL описують дані, які необхідно одержати, а не визначають спосіб їх пошуку. Таблиці і стовпці в реляційній базі даних можуть мати довгі описові імена. В результаті більшість операторів SQL означає саме те, що точно відповідає їх іменам, тому їх можна читати як прості, зрозумілі пропозиції.
2.9 Інтерактивні запити
SQL є Моваом інтерактивних запитів, який забезпечує користувачам
негайний доступ до даних. За допомогою SQL користувач може в інтерактивному режимі одержати відповіді на найскладніші запити в лічені хвилини або секунди, тоді як програмісту були б потрібно дні або тижні, щоб написати для користувача відповідну програму. Через те, що SQL допускає негайні запити, дані стають більш доступними і можуть допомогти в ухваленні рішень, роблячи їх більш обгрунтованими.
2.10 Програмний доступ до бази даних
Програмісти користуються Моваом SQL, щоб писати додатки, в яких
містяться звернення до баз даних. Одні і ті ж оператори SQL використовуються як для інтерактивного, так і для програмного доступу, тому частини програм, що містять звернення до бази даних, можна спочатку тестувати в інтерактивному режимі, а потім вбудовувати в програму. В традиційних базах даних для програмного доступу використовуються одні програмні засоби, а для виконання негайних запитів — інші, без якої або зв'язки між цими двома режимами доступу.
2.11 Різні представлення даних
За допомогою SQL творець бази може зробити так, що різні користувачі
бази даних бачитимуть різні представлення її структури і вмісту. Наприклад, базу даних можна спроектувати таким чином, що кожний користувач бачитиме тільки дані, що відносяться до його підрозділу або торгового регіону. Крім того, дані з різних частин бази даних можуть бути скомбіновані і представлені користувачу у вигляді однієї простої таблиці. Отже, уявлення можна використовувати для посилення захисту бази даних і її настройки під конкретні вимоги окремих користувачів.
2.12 Повноцінний Мова для роботи з базами даних
Спочатку SQL був задуманий як Мова інтерактивних запитів, але зараз він
вийшов далеко за рамки читання даних. SQL є повноцінним і логічним Моваом, призначеним для створення бази даних, управління її захистом, зміни її вмісту, читання даних і сумісного використовування даних декількома користувачами, що працюють паралель. Прийоми, освоєні при вивченні одного розділу Моваа, можуть потім застосовуватися в інших командах, що підвищує продуктивність роботи користувачів.
2.13 Динамічне визначення даних
За допомогою SQL можна динамічно змінювати і розширювати структуру
бази даних навіть в той час, коли користувачі звертаються до її вмісту. Ця велика перевага перед Моваами статичного визначення даних, які забороняють доступ до бази даних під час зміни її структури. Таким чином, SQL забезпечує максимальну гнучкість, оскільки дає базі даних можливість адаптуватися до вимог, що змінюються, не перериваючи роботу додатку, цю виконується в реальному масштабі часу.
2.13 Архітектура клієнт/сервер
SQL — природний засіб для реалізації додатків клієнт/сервер. В цій ролі
SQL служить зв'язуючою ланкою між клієнтською системою, що взаємодіє з користувачем, і серверною системою, управляючою базою даних, дозволяючи кожній системі зосередитися на виконанні своїх функцій. Крім
того, SQL дозволяє персональним комп'ютерам функціонувати як клієнти по відношенню до мережних серверів або більш крупних баз даних, встановлених на великих ЕОМ; це дозволяє діставати доступ до корпоративних даних з додатків, що працюють на персональних комп'ютерах.
2.14. Стандарти SQL
Одним з найважливіших кроків на шляху до визнання SQL на ринку стала
поява стандартів на цей Мова. Звичайно при згадці стандарту SQL мають у вигляді офіційний стандарт, затверджений американським інститутом національних стандартів (American National Standards Institute — ANSI) і Міжнародною організацією за стандартами (International Standards Organization— ISO). Проте існують і інші важливі стандарти SQL, включаючи SQL, реалізований в системі DB2 компанії IBM, і стандарт X/OPEN для SQL в середовищі UNIX.
2.15 Стандарти ANSI/ISO
Робота над офіційним стандартом SQL почалася в 1982 році, коли ANSI
поставив перед своїм комітетом ХЗН2 задачу по створенню стандарту Моваа реляційних баз даних. Спочатку в комітеті обговорювалися достоїнства різних запропонованих Моваів. Проте оскільки на той час SQL вже став фактичним стандартом, комітет ХЗН2 зупинив свій вибір на ньому і зайнявся стандартизацією SQL.
Розроблений в результаті стандарт у великій мірі був заснований на діалекті SQL системи DB/2, хоча і містив в собі ряд істотних відмінностей від цього діалекту. Після декількох доробок, в 1986 році стандарт був офіційно затверджений як стандарт ANSI номер Х3.135, а в 1987 році — як стандарт ISO. Потім стандарт ANSMSO був прийнятий урядом США як федеральний стандарт США по обробці інформації (FIPS — Federal Information Processing Standard). Цей стандарт, трохи переглянутий в 1989 році, звичайно називають стандартом "SQL-89", ttJi"SQLI". Коли в даній книзі згадується "стандарт
ANSI/ISO", то мається на увазі SQLI, який в даний час лежить в основі більшості комерційних продуктів.
Багато кого з членів комітетів із стандартизації ANSI і ISO представляли фірми-постачальники різних СУБД, в кожній з яких був реалізований власний діалект SQL. Як і діалекти людського Моваа, діалекти SQL були в основному схожі один на одного, проте несумісні в деталях. У багатьох випадках комітет просто обійшов існуючі відмінності і не стандартизував деякі частини Моваа, визначивши, що вони реалізуються по розсуду розробника. Цей підхід дозволив оголосити велике число реалізацій SQL сумісними із стандартом, проте зробив сам стандарт відносно слабким.
Щоб заповнити ці пропуски, комітет ANSI продовжив свою роботу і створив проект нового, більш жорсткого стандарту SQL2. На відміну від стандарту 1989 року, проект SQL2 передбачав можливості, що виходять за рамки таких, вже існуючих в реальних комерційних продуктах. А для наступного за ним стандарту SQL3 були запропоновані ще більш глибокі зміни. В результаті запропоновані стандарти SQL2 і SQL3 виявилися більш суперечливими, ніж початковий стандарт. Стандарт SQL2 пройшов процес твердження в ANSI і був остаточно прийнятий в жовтні 1992 року. В той час, як перший стандарт 1986 року займає не більше ста сторінок, офіційний стандарт SQL2 містить близько шестисот.
Всупереч стандарту SQL2, у всіх існуючих на сьогоднішній день комерційних продуктах підтримуються власні діалекти SQL. Більш того, постачальники СУБД включають в свої продукти нові можливості і розширюють власні діалекти SQL, чим ще більше віддаляють їх від стандарту. Проте ядро SQL стандартизовано досить жорстко. Там, де це можна було зробити, не ущемляючи інтереси клієнтів, постачальники СУБД привели свої продукти у відповідність із стандартом SQL-89, те ж саме поступово відбудеться і з SQL2.
2.16 Інші стандарти SQL
Хоча стандарт ANSMSO найбільш широко поширений, він не є єдиним
стандартом SQL. Європейська група постачальників X/OPEN також прийняла SQL як один з своїх стандартів для "середовища переносимих додатків11 на основі UNIX. Стандарти групи X/OPEN грають важливу роль на європейському комп'ютерному ринку, де основною проблемою є переносимість додатків між комп'ютерними системами різних виробників. До нещастя, стандарт X/OPEN відрізняється від стандарту ANSMSO.
Крім того, компанія IBM включила SQL в свою специфікацію Systems Application Architecture (архітектура прикладних систем) і пообіцяла, що всі її продукти, очевидно, будуть перекладені на цей діалект SQL. Хоча дана специфікація і не виправдала надій на уніфікацію лінії продуктів компанії ЮМ, рух у бік уніфікації SQL в ЮМ продовжується. Система DB2 залишається основною СУБД компанії IBM для мейнфреймів. Проте компанія випустила реалізацію DB2 і для О8/2собственной операційної системи для персональних комп'ютерів, і для лінії серверів і робочих станцій RS/6000, що працюють під управлінням UNIX. Таким чином, діалект DB2 Моваа SQL є могутнім стандартом де-факто.
2.17 Міф про переносимість
Поява стандарту SQL викликала досить багато захоплених заяв про
переносимість SQL і використовуючих його додатків. Для ілюстрації того, як будь-який додаток, використовуючи SQL, може працювати з будь-якою СУБД, часто приводять діаграми, подібні зображеною на мал. 3.1. Насправді пропуски в стандарті SQL-89 і відмінності між існуючими діалектами SQL достатньо значні, і при перекладі додатку під іншу СУБД його завжди доводиться модифікувати. Ці відмінності, більшість з яких усунена в стандарті SQL2, включають:*
Коди помилок. В стандарті SQL-89 не визначені коди, які повертають оператори SQL при виникненні помилок, і в кожній з комерційних реалізацій використовується власний набір таких кодів. В стандарті SQL2
визначені стандартні коди помилок.
> Типи даних. В стандарті SQL-89 визначений мінімальний набір типів даних, проте в ньому відсутні деякі з найпоширеніших і корисних типів, наприклад символьні рядки змінної довжини, дата і час, а також грошові одиниці. В стандарті SQL2 згадані ці типи даних, проте відсутні "нові" типи даних, такі як графічні і мультимедійні об'єкти.
Системні таблиці. В стандарті SQL-89 умовчується про системні таблиці, в яких міститься інформація про структуру самої бази даних. Тому кожний постачальник створював власні системні таблиці, і їх структура відрізняється навіть в чотирьох реалізаціях SQL компанії IBM. Системні таблиці стандартизовані в SQL2.
Інтерактивний SQL В стандарті визначений тільки програмний SQL, що використовується прикладною програмою, але не інтерактивний SQL. Наприклад, оператор select, призначений для виконання запитів до бази даних в інтерактивному режимі, в стандарті відсутній. Програмний інтерфейс. В першому стандарті визначений абстрактний спосіб використовування SQL в програмах, написаних на таких Моваах програмування, як COBOL, FORTRAN і інші. Цей спосіб не використовується ні в одному комерційному продукті, а в існуючих програмних інтерфейсах є значні відмінності. В стандарті SQL2 визначений інтерфейс вбудованого SQL для популярних Моваів програмування, але не інтерфейс виклику функцій.
Динамічний SQL В стандарті SQL-89 не описані елементи SQL, необхідні для розробки додатків загального призначення, таких як генератори звітів і програми створення і виконання запитів. Проте ці елементи, відомі під назвою динамічний SQL, є майже у всіх СУБД і в різних системах значно відрізняються. В SQL2 входить стандарт динамічного SQL. Семантичні відмінності. Оскільки деякі елементи визначені в стандартах як залежні від реалізації, може виникнути ситуація, коли в результаті
виконання одного і того ж запиту в двох сумісних СУБД будуть одержано два різні набори результатів. Відмінності результатів обумовлені відмінностями в обробці значень NULL, різними агрегатними функціями і неспівпаданням процедур видалення рядків, що повторюються. Структура бази даних. В стандарті SQL-89 визначений SQL, який використовується вже після того, як база даних була відкрита і підготовлена до роботи. Деталі найменування баз даних і первинного підключення до них сильно відрізняються і несумісні. Стандарт SQL2 в деякій мірі уніфікує цей процес, але не може повністю ліквідовувати всі відмінності
Послідовність порівняння. В стандарті SQL-89 не згадуються послідовності порівняння (сортування) символів, що зберігаються в базі
даних. Результати запиту з сортуванням відрізнятимуться при виконанні цього запиту на персональному комп'ютері (з кодуванням ASCII) і на мейнфреймі (з кодуванням EBCDIC). Стандарт SQL2 дозволяє програмі або користувачу указувати необхідну послідовність сортування.
Всупереч перерахованим відмінностям, на початку 90-х років сталі з'являтися комерційні програми, що реалізовують переносимість додатків між різними СУБД, Проте в таких програмах для кожної з підтримуваних СУБД потрібен спеціальний конвертер, який генерує код відповідно до певного діалекту SQL, виконує перетворення- типів даних, транслює коди помилок і т.д. "Прозора" переносимість між різними СУБД, використовуючими SQL, є основною метою стандарту SQL2 і протоколу ODBC, проте повсюдний, "прозорий" / уніфікований ДОСТУП до баз даних SQL залишається справою майбутнього.
3. Основи РНР
РНР версії 3.0 - мова опису сценаріїв, виконуваних на сервері,
вбудований в HTML.
Можливо найсильніша і значуща можливість в РНРЗ - рівень інтеграції з базами даних. Написання веб-сторінки працюючої з базою даних неймовірно проста. В сьогоднішній час підтримуються наступні бази даних:
Oracle
Adabas D Sybase
FilePro mSQL
Velocis MySQL
Informix Solid
dBase ODBC
Unix dbm PostgreSQL
3.1 Коротка Історія РНР
РНР був задуманий десь в кінці 1994 року Расмусом Ледорфом(Казти8 Lerdorf). Ранні невипущені версії використовувалися на його домашній сторінці для того, щоб стежити за тим хто проглядав його інтерактивне резюме. Перша версія, що використовується, стала доступна десь на початку
1995 і була відома як Personal Home Page Tools. Вона складалася з дуже спрощеного движка синтаксичного аналізатора, який розумів тільки декілька спеціальних макрокоманд і ряд утиліт, які потім були в загальному використовуванні на домашніх сторінках. Гостьові книги, лічильники і деякі інші доповнення.
Досить важко дати яку-небудь жорстку статистику, але відзначено, що до
1996 p. PHP/FI був використаний принаймні на 15,000 веб-сайтах у всьому світі. В середині 1997г. ця цифра виросла до більш ніж 50,000. В середині 1997г. також спостерігалася зміна в розробці РНР. З приватного улюбленого проекту Расмуса, якому сприяла жменька людей, це перетворилося на набагато більш організовану робочу групу. Синтаксичний аналізатор був наново переписаний Зівом CypacbKi(Zeev Suraski) і Анді Гутмансом(АпсІі Gutmans), і цей новий синтаксичний аналізатор став основою для РНР Версії 3.
Сьогодні ( в середині -1998г.) як PHP/FI так і РНРЗ поставляється з рядом комерційних продуктів типа C2's StrongHold web server i RedHat Linux і консервативною оцінкою, заснованою на екстраполяції чисел, наданих NetCraft було б те, що РНР використовується на 150,000 сайтах у всьому світі. В перспективі, їх більш ніж сайтів, запущених на Netscape's flagship Enterprise server в Інтернеті.
НТТР-аутификация засобами РНР
HTTP аутифікація в РНР доступна тільки при використовуванні модуля Apache. В модулі Apache РНР-скрипт, може використовувати функцію
HeaderQ для відправки повідомлення "Authentication Required" браузеру клієнта, викликавши тим самим вікно діалогу Username/Password. Як тільки користувач заповнює поля шегпате і password, URL що містить РНР-скрипт буде викликаний наново із змінними $PHP_AUTH_USER $PHP_AUTH_PW і $PHP_AUTH_TYPE що містять введену інформацію. В даному випадку забезпечується тільки "Основна" аутифікація.
Фрагмент прикладу сценарію, який проводить аутентифікацію клієнта на сторінці, повинен бути наступним:
Приклад 2-І. Приклад HTTP ay тифіка ції
<?php if(!isset($PHP_AUTH_USER)){
Header("WWW-Authenticate: Basic realm=\"My RealmY'");
Header("HTTP/1.0 401 Unauthorized");
echo "Text to send if user hits Cancel button\n";
exit; } else {
echo "Hello $PHP_AUTH__USER.

";
echo "You entered $PHP_AUTH_PW as your password.

";
} ?>
Замість просто розпечатування $PHP_AUTH_USER і $PHP_AUTH_PW, Ви ймовірно хотіли б перевірити і'мя_користувача і пароль для перевірки правильності. Можливо, посилаючи запит до бази даних, або, шукаючи користувача в dbm файлі.
Будьте уважні при використовуванні браузера Internet Explorer. Він вельми прискіпливий до порядку заголовків. Відправка заголовка WWW-Authenticate
перед заголовком HTTP/1.0 401 можливо дасть аутифікацію у будь-якому випадку.
Щоб запобігти від запису ким - то сценарій, який визначає пароль для сторінки, яка була пізнана через традиційний зовнішній механізм, PHP_AUTH змінні не будуть встановлені, якщо допускається зовнішнє встановлення автентичності для тієї специфічної сторінки. В цьому випадку може бути використана змінна $REMOTE_USER щоб ідентифікувати зовнішньо-пізнаного користувача.
Зверніть увагу, проте, що вищезгадане не захищає від кого - те, хто може управляти не-аутифікованим URL використовуючи перехоплений пароль з аутифікованих URL на тому ж самому сервері.
І Netscape і Internet Explorer очистить локальний кеш вікна аутифікації після отримання відповіді серверу 401. Це ефективно як міра відключення KopHCTyBa4iB("log"), що вимушує їх повторно ввести їх username і пароль. Деякі використовують це для відключення користувача після закінчення інтервалу часу('Чіте"), або забезпечують кнопку "Log Out".
Ці методи не потрібні відповідно до Основного стандарту аутифікації HTTP, так що Ви ніколи не повинні залежати від цього. Тестування з Lynx показало, що Lynx не очищає інформацію аутификації з 401 відповіддю серверу, так що перехід назад і потім вперед знову відкриє ресурс (поки вимоги посвідчення особи не змінилися).
Також звернете увагу, що це не працює при використовуванні серверу Microsoft's US і CGI версії РНР через обмеження IIS.
Створення GIF-файлів за допомогою РНР
РНР не обмежений створенням тільки HTML висновку. Він може також використовуватися для створення файлів GIF, або навіть більш
зручні потоки зображень GIF. Для цього вам треба скомпілювати РНР з бібліотекою функцій зображення - GD .
Приклад 2-2. Створення GIF-файлів за допомогою РНР

Цей приклад викликається із сторінки тегом: Вищезазначений скрипт button.php3 берет рядок "text", накладає зверху на основне зображення, яким в цьому випадку є " images/buttonl.gif" і виводить виникаюче в результаті зображення. Це - дуже зручний спосіб не малювати нові зображення кнопки, кожного разу, коли ви хочете змінити текст кнопки. Цим методом вони динамічно згенерують.
Підтримка file upload
РНР може приймати файли, завантажені з будь-якого браузера, що відповідає стандартам RFC-1867 (якими є, наприклад, Netscape Navigator 3 або старше, Microsoft Internet Explorer 3 з виправленнями від Microsoft, або старше). Ця можливість дозволяє людям завантажувати файли. З РНР-аутификацией і функціями маніпулювання файлами, ви маєте повний контроль над тим, кому
дозволяти завантажувати файли і що повинно бути виконано з файлом, якщо він був завантажений.
Екран завантаження файлу може бути організований створенням спеціальної форми, яка виглядає приблизно так:
Приклад 2-3. Форма завантаження файлу



Send this file:


_URL_ повинен вказати на php html файл. Приховане поле
MAX_FILE_SIZE повинне передувати полю введення файлу і означає
максимально допустимий розмір файлу. Значення визначається в
байтах. Для цього файлу при успішному завантаженні будуть визначені
наступні змінні : $userf!le - Тимчасове ім'я файлу під яким
завантажений файл завантажується в машину серверу.
$userfile_name - Початкове ім'я файлу в системі відправника. $userfile_size - Розмір завантаженого файлу в байтах.
$userfile_type - Тип МІМЕ файлу, якщо броузер надав цю інформацію. Наприклад може бути "image/gif". Зверніть увагу, що компонент вищезазначених змінних "$userfile" - це будь-яке значення поля Name тега INPUT з TYPE=file позначене у формі завантаження. В приведеному вище прикладі форми завантаження ми назвали його "userfile".
За умовчанням файли будуть збережені в заданому за умовчанням тимчасовому каталозі серверу. Його можна змінити, установкою змінного середовища TMPDIR в середовищі, в якому РНР виконується. Хоча, використовування при її установці обігу PutEnv () зсередини сценарію РНР не працюватиме.
Скрипт РНР, який одержує завантажений файл, повинен визначити, що повинно бути виконано із завантаженим файлом. Ви можете, наприклад, використовувати змінну $file_size, щоб відкинути будь-які файли, які є або дуже маленькими або дуже великими. Ви могли б використовувати змінну Sfilejype, щоб відкинути будь-які файли, які не відповідають деяким критеріям типу. У будь-якому випадку, ви повинні або видалити файл з тимчасового каталога або перемістити його в інше місце. Файл буде видалений з тимчасового каталога в кінці запиту, якщо він не переміщений або перейменований.
Будь ласка звернете увагу, що веб-сервер CERN httpd, здається, видаляє те, що все починається з першого пропуску в заголовку content-type mime, одержаному від клієнта. Поки справа йде так, CERN httpd не підтримуватиме можливість завантаження файлу.
Підтримка HTTP cookie
РНР підтримує HTTP cookies. Cookies - механізм для збереження даних у даному браузері і, таким чином, - трекінг або ідентифікація користувачів. Ви можете встановлювати файли cookie використовуючи функцію setcookieQ. Cookies - частина HTTP заголовка, так що функція SetCookie() повинна викликатися перш ніж браузеру послана яка-небудь інформація для висновку. Це - те ж саме обмеження, яке торкається і функції Header().
Любимий ой cookie, посланий Вам від клієнта буде автоматично перетворений на змінну РНР так само як дані методів GET і POST. Якщо ви бажаєте призначити множинні значення одиночному cookie -просто додайте [] до імені cookie. Для більш докладної інформації див. функцію setcookie ().
Підтримка баз даних
РНР підтримує ряд різних баз даних, і в режимі роботи у власній системі команд і через ODBC, включаючи:
Adabas D
MySQL dBase
Oracle Empress
PostgreSQL FilePro
Solid Informix
Sybase InterBase
Velocis mSQL
Unix dbm Регулярні вирази
Регулярні вирази використовуються для складного маніпулювання рядками в РНР. Функції, які підтримують регулярні вирази: eregO
eregjrepiaceO eregiQ
eregi__replace()
splitQ
Всі ці функції приймають рядок регулярного виразу як їх перший параметр. PUP використовує розширені регулярні вирази POSIX як визначено в POSEX 1003.2. Для повного опису регулярних виразів POSIX див. відповідні розділи керівництва (regex), в каталозі regex дистрибутива РНР.
Example 2-4. Приклад регулярних виразів
ereg("abc",$strmg); /* Повертає 'істина', якщо "abc" знайдено в рядку $string. */
ereg("Aabc",$string); /* Повертає 'істина', якщо "abc" знайдено на початку рядка Sstring. */
ereg("abc$",$string); /* Повертає 'істина1, якщо "abc" знайдено в кінці рядка $string. */
eregi("(ozilla.[23]|MSffi.3)",$HTTP_USER_AGENT); /* Повертає'істина', якщо браузер клієнта - Netscape 2, З або MSIE 3. */
ereg("([[:alnum:]]+) ([[:alnum:]]+) ([[:alnum:]]+)"
$string,$regs); /* Поміщає три слова - $regs[l] $regs[2] і $regs[3], розділені пропуском. */
eregjrepiace("A","
",$string);
/* Встановлює тег
в початок рядка Sstring. */
ereg_jeplace("$'V'
",$string);
/* Встановлює тег
в кінець рядка Sstring. */
eregjreplace(M\nVf",$string);
/* Відсікає символ "повернення каретки" в рядку Sstring. */
Обробка помилок
В РНР є 4 типи помилок і попереджень. Це:
1 - Нормальні Помилки ФункцЩНоппаІ Function Errors)
2 - Нормальні Попередження(Когта1 Warnings)
4 - Помилки Синтаксичного Аналізатора(Рагзег Errors)
8 - Повідомлення(Нойсез): попередження, які Ви можете проігнорувати але, які можуть мати на увазі баги у вашому коді
Ці 4 типи комбінуються при визначенні помилки, повідомляючи рівень. Помилка за умовчанням, повертає рівень 7, який є комбінацією 1+2 + 4, або всі помилки за винятком приміток. Цей рівень може бути змінений у файлі php3. ini директивою errorjreporting. Він також може бути встановлений у вашому файлі Apache httpd.conf директивою php3jerrorjreporting, або ж це може бути вироблено в часі виконання сценарію, з використанням функції errorjreporting ().
Всі вирази РНР можуть також викликатися з префіксом "@", який вимикає повідомлення про помилку, специфічне для цього виразу. Якщо помилка відбулася під час виконання такого виразу, і
допускається можливість track_errors, Ви можете знайти повідомлення про помилки в глобальній змінюй $php_errormsg.
РНР source viewer Файл php3.ini
Файл php3.ini читається при запуску синтаксичного аналізатора РНР. Для версій серверного модуля РНР, це трапляється тільки один раз, коли запускається веб-сервер. Для версії CGI це трапляється на кожному виклику.
Тільки для кожної директиви вказаної тут, є відповідна директива Apache в httpd.conf. Просто додайте php3_ на початку імен директив, вказаних тут.
Ви можете подивитися настановні параметри більшості значень конфігурації викликавши функцію phpinfoO.
3.2 Основні директиви конфигурации
autojxppendjile string
Визначає ім'я файлу, який автоматично перевіряється після основного файлу. Файл включається так само, як якби була викликана функція included, з використовуванням includejpath.
Спеціальне значення попе забороняє авто-додавання.
Примітка: Якщо сценарій обривається функцією exitO» авто-додавання не відбудеться.
autojyrependjilestring
Визначає ім'я файлу, який автоматично перевіряється перед основним файлом. Файл включається так само, як якби була викликана функція includeO, з використовуванням includejpath.
Спеціальне значення попе забороняє авто-додавання.
cgi_ext string display_errors boolean
Це визначає, чи повинні помилки друкуватися на екрані як частина HTML висновку чи ні.
docjroot string
Головний каталог("гооІ directory") PHP на сервері. Використовується тільки коли він не порожній. Якщо РНР конфігурований при допомозі safe mode, то ніякі інші файли за межами цього каталога не обслуговуються.
engine boolean
Ця директива дійсно корисна тільки в модулі РНР під Apache. Це використовується на сайтах, де необхідно включати і вимикати синтаксичний аналіз РНР на певні каталоги і віртуальні сервери. Установкою php3_engine off в допустимому місці файлу httpdconf, РНР можна забороняти і дозволяти.
error Jog string
Ім'я файлу, куди зберігається журнал помилок(1о§ file) сценаріїв. Якщо використовується спеціальне значення syslog, помилки відправляються в системний журнал(зу8Іет logger). В UNIX'e це syslog(3), а в Windows NT це журнал подій (event log). Системний журнал не підтримується в Windows 95.
error_reporting integer
Встановлює рівень повідомлень про помилки. Параметр є цілим, представляючим бітову область. Додайте ті значення рівнів повідомлень про помилки, які Ви хочете.
Таблиця 4-1. Рівні повідомлень про помилки
bit value допус |
тимі повідомлення і
1 ____ |
нормальні помилки
2 |
нормальні попередження
4 |
помилки синтаксичного аналізатора j
8 І |
Іекритичні попередження стилю
системної змінної оточення PATH : список каталогів розділяється двокрапкою в UNIX або крапкою з комою в Windows.
Приклад 4-1. UNIX include_path
includejpath=.:/home/httpd/php4ib
Приклад 4-2. Windows racludejpath
include_path=".;c:\www\phplib"
Значенням за умовчанням цієї директиви є. (тільки поточний каталог).
isapi_ext string log_errors boolean
Повідомляє, що незалежні повідомлення про помилку сценарію повинні реєструватися в журналі помилок серверу. Цей вибір таким чином є специфічним для серверу.
magic quotes gpc boolean
Встановлює magic_quotes стан для GPC (Get/Post/Cookie) операцій. Коли magic_quotes включене (on), все ' (одиночні лапки) " (подвійні лапки) \ (зворотні слеши) і нульові значення (NUL's) записуються із зворотною косою межею автоматично. Якщо також включене magic_quotes_sybase, одиночна лапка записується з додатковою одиночною лапкою замість зворотної косої межі.
magic_quotes_nintime boolean
Якщо magicjjuotesjruntime дозволене, більшість функцій, які повертають дані з будь-якого зовнішнього джерела різної природи, включаючи бази даних і текстові файли, матимуть лапки, записані із зворотною косою межею. Якщо magic_quotes_sybase також включені, одиночна лапка записується з додатковою одиночною лапкою замість
зворотної косої межі. magicjjuotesjsybase boolean
Якщо magic_quotes_sybase також дозволене, одиночна лапка записується з додатковою одиночною лапкою замість зворотної косої межі, якщо magic_quotes_gpc або magic_quotes_runtime дозволені.
max_execution_time integer
Ця установка визначає максимальний час в секундах допустиме для сценарію, перш ніж він буде припинений аналізатором. Це допомагає оберегтися від плохо/некорректно написаних сценаріїв.
memoryJimit integer
Ця установка визначає максимальний розмір пам'яті в байтах, допустимий для цього сценарію. Це допомагає заборонити плохо/некорректно написаним сценаріям використовувати всю доступну пам'ять на сервері.
nsapi_ext string
short_open Jag boolean
Задає допустимість короткої форми ( гелів РНР. Якщо ви хочете використовувати РНР спільно з XML, цю опцію необхідно відключити. Якщо опція відключена, ви повинні використовувати довгу форму тегів ().
sql.safejnode boolean track_errors boolean
Якщо опція дозволена, останнє повідомлення про помилку завжди буде представлено в глобальній змінній $php_errormsg.
track_yars boolean
Якщо опція дозволена, вхідна інформація GET, POST і cookie може бути знайдена в глобальних асоціативних масивах $HTTP_GET_VARS $HTTPJPOSTJ/ARS і $HTTP_COOKIE_VARS, відповідно.
uploadJmp_dir string
Тимчасовий каталог, що використовується для зберігання файлів при їх завантаженні на сервер. Повинен допускати запис, незалежно від того, яким користувачем РНР використовується.
userjtir string
Основне ім'я каталога, що використовується в домашньому каталозі користувачів для файлів РНР, наприклад publicjitml.
\varnjplus_overloading boolean
Якщо дозволено, ця опція видає при висновку РНР повідомлення коли оператор плюс( + ) використовується в рядку. Це повинне полегшити пошук сценаріїв, які повинні бути перезаписані із заміною на ( . ) -string concatenator.
3.3 Директиви Конфігурації Пошти
SMTP string
Ім'я DNS або IP адреса серверу SMTP, який повинен використовуватися РНР під Windows для відправки повідомлення функцією дІаіЮ.
sendmailjrom string*
^
Визначає "From:" - поштова адреса, яка використовується в повідомленні, відправленому РНР під Windows.
sendmail_path string
Указує де може бути знайдена програма sendmail, звичайно це /usr/sbin/sendmail або /usr/lib/sendmail configure робить чесну спробу визначити це за вас і встановлює значення за умовчанням, але у разі невдачі ви можете встановити це тут.
Системи не використовуючі sendmail повинні встановити оболонку/заміну sendmail їх пропонованою системою пошти, якщо є. Наприклад Qmail користувачі можуть вказати /var/qmail/bin/sendmail,
3.4 Директиви Конфігурації Safe Mode
safejnode boolean
Встановлює допустимість РНР safe mode. Читайте главу Безопасность (Security) для більшої інформації
safejnode_execjfir string
Якщо РНР використовується в safe mode svstemO і інші функції, що виконують системні програми, відмовляються запускати програми, які знаходяться не в цьому каталозі.
3.5 Debugger Configuration Directives
debugger, host string
DNS-ім'я або IP-адреса хосту використовується відладчиком. debugger.port string
Номер порту використовується відладчиком.
V
debugger, enabled boolean
Задає допустимість використовування відладчика.
3.6 Директиви Завантаження Розширень(Ехіеп«іоп Loading)
enable_dl boolean
Ця директива дійсно корисна тільки в модулі РНР під Apache. Ви можете разрешать/запрещать динамічне завантаження розширень РНР функцією dIO роздільно по каталогах и/или по віртуальних серверах.
Основна причина для виключення динамічного завантаження - безпека. З динамічним завантаженням, можна ігнорувати всі обмеження safejmode і open_basedir.
За умовчанням динамічне завантаження повинне допускатися, за винятком випадків, коли використовується safe-mode. В safe-mode завжди неприпустимо використовування dIO .
extensionjlir string
В якому каталозі РНР повинен шукати динамічно завантажувані розширення.
extension string
Які динамічно завантажувані розширення завантажити, при запуску РНР.
3.7 Директиви конфігурації MySQL
туsql allow^persistent boolean
Припуститися постійні/стійкі MySQL з'єднання. туsql.max persistent integer
Максимальне число постійних MySQL з'єднань за один процес.
V
mysql.maxjinks integer
Максимальне число MySQL з'єднань за процес, включаючи постійні
з'єднання.
3.8 Директиви конфігурації mSQL
msql.allow^persistent boolean
Припуститися постійні mSQL з'єднання. msqlmax_persistent integer
Maximum number persistent mSQL connections per process. msqlmaxJinks integer
Максимальне число постійних mSQL з'єднань за один процес.
3.9 Директиви конфігурації Postgres
pgsql.allowjpersistent boolean
Припуститися постійні/стійкі з'єднання Postgres. pgsqlmax_persistent integer
Максимальне число постійних з'єднань Postgres за процес. pgsqlmaxjinks integer
Максимальне число Postgres з'єднань за процес, включаючи постійні з'єднання.
3.10 Директиви Конфігурації Sybase
sybase.attowjiersistent boolean
Припуститися постійні Sybase з'єднання. sybase.max_persistent integer ,
Максимальне число постійних Sybase з'єднань за процес. Sybase.max Jinks integer
Максимальне число Sybase з'єднань за процес, включаючи постійні з'єднання.
3.11 Директиви Конфігурації Sybase-CT
sybct. allow^persistent boolean
Припуститися постійні Sybase-CT з'єднання. За умовчанням включено. sybct.maxjpersistent integer
Максимальне число постійних Sybase-CT з'єднань за процес. За умовчанням значення -1 що означає необмежену кількість.
sybct max Jinks integer
Максимальне число Sybase-CT з'єднань за процес, включаючи постійні з'єднання. За умовчанням значення -1 що означає необмежену кількість.
sybct. min_server_severity integer
Повідомлення Серверу із ступенем більш ніж або рівної sybct.min_server_severity будуть повідомлені як попередження. Ця величина може також встановлюватися з сценарію викликом Sybasejrnin_server_severityO * Значення за умовчанням - 10, яке повідомляє помилки строгості інформації, або вище,
sybct.mm_client_severity integer
Повідомлення бібліотеки Клієнта із строгістю більш ніж або рівної sybct.min_client_severity будуть повідомлені як попередженнях. Ця величина може також встановлюватися з сценарію викликом sybase_min_client_severity() . За умовчанням - 10, що ефективно забороняє висновок.
sybct.loginjtimeoKt integer
Максимальний час (в секундах) очікування повторної спроби з'єднання, перш ніж буде відмова. Майте у вигляді, що якщо max_executionjime перевищений коли час спроби з'єднання закінчиться, ваш сценарій буде розірваний будуть перш, ніж зроблені які-небудь дії на випадок відмови. За умовчанням - одна хвилина.
sybct.timeottt integer
Максимальний час(в секундах) очікування закінчення select_db або виконання запиту. Майте у вигляді, що якщо max_execution_time перевищений, коли час функціонування закінчується, ваш сценарій буде розірваний будуть перш, ніж зроблені які-небудь дії на випадок відмови. За умовчанням не обмежено.
sybct.hostname string
Ім'я хосту, з яким ви хочете з'єднатися, для показу sp_who. За умовчанням - попе.
3.13 Директиви Конфігурації ВС Math
bcmaih. scale integer
Кількість десяткових цифр для всіх функцій bcmath.
3.14 Директиви Конфігурації Можливостей Броузера
browscap string
ім'я файлу можливостей браузера.
3.15 Директиви Конфігурації Уніфікованих ODBC
uodbc.default_db string
ДЖЕРЕЛО ДАНИХ ODBC, для використовування, якщо нічого не визначено в odbc connectO або odbc pconnectO .
uodbc.default_user string
Ім'я користувача, що використовується якщо немає визначень в odbc connectO або odbc pconnectO .
uodbc.default_pw string
Пароль, що використовується, якщо не визначено в odbc connectO або odbc pconnectO.
uodbc.attowjpersistent boolean
Припуститися постійні/стійкі ODBC з'єднання. uodbc.max_persistent integer
Максимальне число постійних ODBC з'єднань за процес. uodbc.maxJinks integer
Максимальне число ODBC з'єднань за процес, включаючи постійні з'єднання.
3.16 Безпека
РНР - могутній Мова і інтерпретатор, незалежно від того, чи включений він у веб-сервер як модуль або виконується як розділення здійснимих файлів(Ьіпагу) CGI, він може мати доступ до файлів, виконувати команди і відкривати мережні з'єднання на сервері. Ці властивості дають можливість виконувати що-небудь на веб-сервері небезпечне за умовчанням. РНР розроблений спеціально для того, щоб бути більш безпечним Моваом для написання програм ,CGI, ніж Perl або З, З правильним вибором compile-time і runtime опцій конфігурації він дає вам якраз ту комбінацію свободи і безпеки, яка вам потрібна.
Як є багато різних шляхів використовування РНР, є і великий вибір конфігурацій, що управляють поведінкою РНР. Великий вибір опцій гарантує, що ви можете використовувати РНР для багатьох цілей, але це також означає що є комбінації цих опцій і, також, конфігурацій серверу^ які закінчуються небезпечною установкою. Цей розділ пояснює різні комбінації опцій конфігурації і ситуації, в яких вони можуть бути вдало використані.
ЗЛ7 CGI binary
Використовування РНР як здійснимих файлів CGI - вибір для установок, які з деякої причини не хочуть упровадити РНР як модуль в програмне забезпечення серверу (подібно Apache), або РНР використовуватиметься з іншими типами оболонок CGI, щоб створити надійне оточення chroot і setuid для сценаріїв. Ця установка звичайно включає установку виконуваного(Ьтагу) РНР в каталог cgi-bin на веб-сервері. Бюлетень CERT СА-96.11 рекомендує крім того, встановлювати будь-які інтерпретатори в cgi-bin. Навіть якщо здійснимий РНР може бути використаний як автономний інтерпретатор, РНР розроблений для того, щоб оберегти від атаки, яку ця установка робить можливою:
* Доступ до системних файлів: http://my.host/cgi-bm/php7/etc/passwd
Інформація запиту в url після знака питання (?) проходить як аргументи командного рядка інтерпретатору через інтерфейс CGI. Звичайно перекладачі відкривають і виконують файл вказаний як перший аргумент в командному рядку.
Викликаний як виконуваний CGI-файл, РНР відмовляється інтерпретувати командні аргументи рядка.*
Доступ до будь-яких веб-документів на сервері: http://my.host/cgi-bin/php/secret/doc.html
Частина URL з інформацією про шлях, що стоїть після імені РНР-файлу /secret/doc.html звичайно використовується, щоб визначити ім'я файлу, який повинен відкриватися і інтерпретуватися CGI програмою. Звичайно деякі директиви конфігурації веб-серверу(Араспе: Action) використовуються, щоб перенаправити запити до документів подібно http://my.host/secret/script.php3 на РНР інтерпретатор. З такою установкою веб-сервер спочатку перевіряє дозволи доступу в каталозі /secret, і потім створює запит перенаправлення http://my.host/cgi-bin/php/secret/scriptphp3 . До нещастя, якщо запит не дається спочатку в цій формі, веб-сервер не перевіряє доступ до файлу /secret/scriptphp3, але тільки для файлу /cgi-bin/php . Таким чином будь-який користувач, що має доступ до /cgi-bin/php, дістає доступ до будь-яких захищених документів на сервері.
В РНР, опція compile»time конфігурації —enable-force-cgi-redirect і директиви пшите-конфігурації doc root і user^dir може використовуватися для того, щоб відобразити цю атаку, якщо дерево документів серверу має будь-які директорії з обмеженнями доступу. Дивіться нижче для повного пояснення інших комбінацій.
Варіант 1: обслуговуються тільки загальні(риЬ1іс) файли
Якщо ваш сервер не має якої-небудь інформації, яка не обмежується паролем або управлінням доступом на основі ір, немає потреби в цих опціях конфігурації. Якщо ваш веб-сервер не дозволяє вам проводити перенаправлення, або сервер не має шляху, щоб зв'язатися із здійснимим РНР, який запрошує благополучно перенаправлений запит, ви можете вказати опцію — disable-force-cgi-redirect для конфігурування сценарію. Ви все ще повинні переконатися, що ваші сценарії РНР не покладаються на цей або інший шлях виклику сценарію, ні безпосередньо http://my.host/cgi-bin/php/dir/scriptphp3, ні переадресацією http://my.host/dir/script.php3.
Перенаправлення може бути конфігуровано, наприклад в Apache, директивами AddHandler і Action (див. нижче).
Варіант 2: використовування — enable-force-cgi-redirect
Ця compile-time опція оберігає від виклику РНР напряму з URL подібно http://my.host/cgi-bin/php/secretdir/script.php3. Замість того щоб виконати запит, РНР виконує тільки граматичний розбір в цьому способі якщо він виконав правила перенаправлення веб-сервера.
Звичайно переадресація в конфігурації Apache зроблена з наступними директивами:
Action php3-script /cgi-bin/php AddHandler php3-script .php3
Ця опція була протестована тільки з веб-сервером Apache, і покладається на Apache щоб встановити не-стандартну зовнішню змінну CGI REDIRECT_STATUS для перенаправлених запитів. Якщо ваш сервер павутини не підтримує якого-небудь способу повідомляти що запит прямої або перенаправлений, Ви не можете використовувати цю опцію і Ви повинні використовувати один з інших шляхів запуску версії CGI, документованої тут.
Варіант 3: установка doc__root або userjiir
Розміщення активного змісту, такого як скрилти і модулі, в каталогах документів веб-серверу іноді є небезпечною практикою. Якщо при деякій помилці конфігурації сценарії не виконуються, вони відображаються як звичайні HTML документи, що може закінчитися витоком інтелектуальної власності або інформації безпеки подібно паролям. Тому багато хто сісадмини віддають перевагу встановлювати інші каталоги для сценаріїв, які будуть доступні тільки через РНР CGI і, отже, завжди проінтерпретовані і не
відображені як такі.
Також, якщо неприступний метод перенаправлення невпевнених запитів, як описано в попередньому розділі, необхідно встановити кореневий каталог(сіос_гооі) сценаріїв, який відрізняється від кореневого каталога веб-документів.
Ви можете встановити кореневий каталог для скриптів директивою конфігурації doc root у файлі php3.ini, або ви можете встановити змінну оточення PHP_DOCUMENT_ROOT. Якщо це встановлено, CGI-версія РНР завжди додаватиме docjroot і шлях до файлу в запитах, так що ви завжди будете впевнені що за межами цього каталога скрипти виконуватися не будуть (окрім user_dir //див.ниже).
Інша опція, що використовується, - user dir. Коли userjiir - не встановлена, відкриттям файлу управляє тільки docj-oot. Відкриття URL подібно http://my.host/~user/doc.php3 не дасть результату при відкритті файлу з каталога користувача, але викликається файл ~user/doc.php3 з каталога docjroot (так, ім'я каталога починається з тильди [~]).
Якщо userjiir встановлена, наприклад як publicj>hp, запит, подібний http://my.host/~user/doc.php3 відкриє файл doc.php3 в каталозі public_php домашнього каталога користувача. Якщо це /home/user, то виконується /home/user/publicjphp/doc.php3.
userjtir задається незалежно від docjroot, так що ви можете контролювати доступ до document root і user directory окремо.
Варіант 4: РНР синтаксичний аналізатор зовні дерева web
Дуже безпечна опція повинна встановити синтаксичний аналізатор РНР де-небудь зовні дерева файлів web. В /usr/local/bin, наприклад. Зворотна сторона цієї опції полягає в тому що ви повинні вставляти рядок подібно:
# !/usr/local/bin/php
в перший рядок будь-якого документа, РНР теги, що містить. Крім того, ви повинні зробити файли здійснимими. Точно так, як і Ви поступаєте з будь-яким іншим сценарієм CGI записаним в Perl або sh або будь-якому іншому язиці, який використовує #! shell-escape механізм для самозапуску.
Щоб РНР дістав можливість коректно оперувати з PATHJNFO і PATH_TRANSLATEDnpH такій установці, php анализатор повинен бути скомпільований з опцією конфігурації —enable-discard-path
Модуль Apache
Коли РНР використовується як Apache модуль, не успадковуються права користувача Apache (звичайно такі - "nobody").
4. ПРОГРАМНИЙ КОД ІНТЕРНЕТ-МАГАЗИНА
4.1 Файл index.php:
Виконають основні функції інтернет-магазина.



-=|CaMi>ra легкий путь к noKynKe|=-

info/documents

,
<?php
$idchp=$HTTP^GET_VARS[fidchp']; Sidcnt-SHTTP^GET^VARSf'idcnt'];
if($idcnt="")$idcnt=$HTTP_POST_VARS[fidcnt?]; $idcat=$HTTP_GET_VARS['idcatf]; if($idcnt="0"){
$cname=$HTTP_POST_VARS['namef]; $ctel=$HTTP_POST_VARS[ftelf]; $caddr=$HTTP_POST_VARS[faddr']; if($cname!=""&&$ctel!=ltn){
mysql_query("insert into clients(name,tel,closed) values('w.$cname.m,lff.$ctel.IH,0)"); if($caddr!=""){
$rcnt=mysql_query("select max(id) as id from clients where name="'.$cname.mfl);
$scnt=mysql_fetch_array($rcnt);$idcnt=$scnt[lid1]; mysql_query("update clients set addr=l".$caddr.IH where id=".$idcnt);
mysql_free_result($rcnt);
} }
}
$fcls=$HTTP_POST_VARS['fcls!];
if($fcls="z"){
mysql_queiy("update clients set closed=l where id=".$idcnt); unset($idcnt);
} $iditm=$HTTP_POST_VARS[fiditmf];
if($iditm!=""){
$qnt=$HTTP_POST_VARS[fqnt!]; mysql_query("insert into orders(idclient,iditem,quant) values(".$idcnt.fl,".$iditm.ff;i.$qnt")fl);
} $rcats=mysql_query("select * from cats");
while($scats=mysql_fetch_array($rcats))
echo 'l.$scats[fnamef].f
f;
mysql_free_result($rcats); ?>
<?php
if($idchp!==""){
$ritms=mysql_query("select * from items where idchp=".$idchp); while($sitms=mysql_fetch_array($ritms)) {
echo f
     f .$sitms['vendor'] ,f :  f .$sitms[liiame>].f' .$sitms['txtf].'
'
.($sitms[lpresentt]==l?"":"not ").'present in store now'; if($idcnt!=If")
echo "
Quantity:" ." " .""
."" .'';
echo '';
}
mysql_free_result($ritms);
}else{ 7>
Wellcome! This is the online ordering center, where you can order needed things via internet. You just mast to leave you contact telephone number and an address you want to get you order. Please start by selecting one category of those you can see left.

(select category to see submenu)
<?php
if($idcnt!=""){
echo "
";
$rodr==mysql_query("select i.vendor as vnd,Lname as name,o.quant as quant from items i,orders о where i.id^.iditem and o.idclient=".$idcnt); while($sodr=mysql_fetch_array($rodr))
echo
ff^$sodr[lvndf].V/td>
^$sodr[tname^.V/tdxtd>^$sodr['quantf].^ dx/tr>";
mysql_free_result($rodr); echo "
"; echo "H;
echo ""; ?>
<?php
}else{
echo ''; ?>

Name:
Tel:
Address:




4.2 Файл ini.php:
Файл береже пароль, логін до бази даних SQL

4.3 Файл dcs.php:
Відображає таблицю супутніх файлів.
Onlide ordering


 riepe4eHb документов: <?php
$rdocs=mysql_query("select * from docs");
while($sdocs=mysql_fetch_array($rdocs))echot
l.$sdocs['namel].t';
mysql_free_result($rdocs); ?>


4.4 Файл dogovor.html:
Відображає договір на користування Інтернет-магазином.











Agreement
l. You are going to pay me a lot of money as frequently as possible.

2.1 am going to drink some beer for them
:)


<data>, <sign>


4.5 Файл crtall.sh:
Активізує, запускає SQL
#!/bin/bash
mysql -proot name) values(2,3,"80Gb 8M cashe");
insert into docs(id,name,file) values(0,lAgreement','dogovor.htmlf);
4.7 Файл Ist.php
Відкрівае html таблиці і виводить замовлення.




Orders:
NameTelAddress <?php
$rord==mysql_query("select name,tel,addr,closed from clients");
while($sord=mysql_fetch_array($rord))
echo
"".$sord[name].H".$sord[tel]."H.$sord[addr]."".$sord[closed]."";
mysql_freejresult($rord); 7>

Items:




IIX/td>CategoryChapterNameVendorImageURLPresentUAH USEK/tdxtd>Description <?php
$rfhn=mysql_query("select i.id,c.name as cat,h.name as
chap,i.name,i.vendor,i.img,i.present,i.priceh,i.priced,i.txt from items i,cats c,chaps h where i.idchp=h.id and h.idcat=c.id"); while($sfrm=mysql_fetch_array($rfrm))
echo M".$sfrm[fid(]."M .$sfrm[fcatf]."" .$sfrm[tchap'].!l" .$sfrmffnamef]."M .$sfrm[Vendorl]/l" .$sfrmrimgf]."" .$sfrm['present']."ft .$sfrm['pricehf].lf" .$sfrm[fpriced!].""; mysql_free_result($rfrm); ?>

4.8 Файл cdd.php
Файл в якому проглядуються замовлення і редагується прайсліст.

Business relinker rule


<?php
$cnt=opendirC./in');$f=0; while($ent=readdir($cnt))if(!is_dir(f./m/'.$ent)){
echo "
".$ent."ff;$f=l;
}
if(!$f)echo "No input files"; 7>



Внимание, отключите Adblock

Вы посетили наш сайт со включенным блокировщиком рекламы!
Ссылка для скачивания станет доступной сразу после отключения Adblock!

Скачать
Рефераты по информатике 1.1. Web-дизайн і браузери Багато Web-дизайнерів сходяться на думці, що одна з головних проблем Web-дизайну - різноманіття браузерів і платформ,
Оценок: 960 (Средняя 5 из 5)

Наверняка у вас есть товары или услуги, продажа которых приносит вам максимальную прибыль. Для быстрого старта в сети вам необходимо создание посадочной страницы (одностраничного сайта), на которой будет размещена информация о маржинальных товарах/услугах интернет магазина. За 8 лет опыта разработки конверсионных страниц мы выработали оптимальную структуру, которая позволит привлекать через landing page больше продаж. На такую структуру «одевается» ваш контент — фирменный стиль, тексты, фотографии, уникальные торговые предложения, после чего страница выходит в свет. Разработка лендинга и запуск в сети — до 7 рабочих дней. Стоит отметить, что в разработку самой посадочной страницы входит и написание копирайтером продающих текстов для вашего бизнеса, чтобы каждый посетитель страницы захотел совершить покупку именно у вас. Результат: качественно разработаная продающая посадочная страница, которая готова приносить вам новых клиентов.

© 2016 - 2022 BigEdu.ru