Теґи <div> та <span>

Поширте інформацію:

Я не відразу зміг запам’ятати, яка різниця між цими теґами :)

Отже,

<div></div> – блочний елемент, призначений для виділення фрагмента документа з метою змінити вигляд цього фрагмента. Як правило, вигляд задається за допомогою стилів. Для того, щоб не описувати щоразу стиль всередині теґа, можна виділити стиль у зовнішню таблицю стилів, а для теґа додати параметр class або id з іменем селектора.

Як і при використанні інших блочних елементів, вміст теґа < div> завжди починається з нового рядка. Після нього також автоматично додається розрив рядка.

Параметри:

align – задає горизонтальне вирівнювання вмісту теґа;

title – додає до вмісту підказку, що з’являється при наведені миші.

<span></span> – цей  теґ призначений для визначення вбудованих елементів документа. На відміну від блочних елементів, таких, як <table>, <p> або <div>, за допомогою цього теґа можна виділити частину інформації всередині інших теґів і встановити для неї особливий стиль.

Наприклад, всередині параграфа (теґа <p>) можна змінити колір та розмір першої букви, якщо додати до неї відкриваючий та закриваючий теґи <span> і визначити для нього стиль тексту. Для того, щоб не описувати щоразу стиль всередині теґа, можна виділити стиль у зовнішню таблицю стилів, а для теґа додати параметр class або id з іменем селектора.

Як зареєструвати доменне ім’я другого рівня в інтернет-зоні .UA і “прикрутити” його до сайту

Поширте інформацію:

Ця стаття буде не про PHP, але все ж таки про сайтобудування.

Багато хто з початківців (і я в тому числі) вирішує розмістити свій перший сайт на безкоштовному хостингу. Однак доменні імена, які видають безкоштовні хостинги, як правило, непривабливі. А може бути, що й пропоноване платним хостингом доменне ім’я вас не влаштує.

Але вихід є – можна зареєструвати більш бажане доменне ім’я і “прикрутити” його до сайту.

ТОВ “Хостмайстер” надає послуги з адміністрування і супутнього технічнгого супроводу домену .UA і публічних доменів у ньому. 

В системі UANIC, організованій цим товариством, можна безкоштовно і в автоматичному режимі зареєструвати домен третього рівня в таких доменних зонах: * chernovtsy.ua * cv.ua * ivano-frankivsk.ua * if.ua * kherson.ua * ks.ua * org.ua * poltava.ua * pl.ua * rv.ua * sumy.ua * uzhgorod.ua * uz.ua

Розглянемо, як це зробити на практиці.

Деякі терміни, які потрібно знати (за сайтом UANIC)

Доменне ім’я (домен) – частина простору ієрархічних імен мережі Інтернет, яка позначається унікальним доменним іменем, обслуговується набором серверів доменних імен (DNS) та централізовано адмініcтрується.

Делегування домену – розміщення та збереження інформації про доменне ім’я та відповідних йому серверах доменним імен (DNS) на серверах DNS домену верхнього рівня, що забезпечує функціонування домену в мережі Інтернет.

Реєстр – центральна база даних домену, яка містить інформацію про зареєстровані доменні імена, адміністраторів доменів, іншу інформацію, необхідну для функціонування та обслуговування доменів. Реєстрант – особа, яка використовує і розпоряджається доменним іменем протягом строку реєстрації на підставі договору з Реєстратором. Реєстрант є Адміністратором відповідного доменного імені.

Реєстратор – юридична особа, яка надає Реєстрантам послуги, необхідні для делегування їм доменів, а також виконує технічні заходи по забезпеченню цієї процедури та передачі необхідної інформації в реєстраційну базу даних.

WHOIS – один з стандартних сервісів мережі Інтернет. За протоколом whois можна отримати інформацію про різноманітні об’єкти та їх контактних осіб. Наприклад, можна дізнатися, чи зареєстроване доменне ім’я, хто є його реєстрантом, отримати інформацію про DNS-сервери тощо. За IP-адресою можна дізнатися про назву організації, якій виділений цей блок адрес, як він маршрутизується, хто відповідає за працездатність цієї ділянки мережі тощо. Інформацію про зареєстровані домени можна отримати через Whois сервiс відповідних реєстрів: * ua – hostmaster.net.ua * net, com – www.verisign-grs.com/whois * org – www.pir.org/whois-search * info – http://www.afilias.info/whois_search/ * biz – www.whois.biz

Крок 1. Станьте реєстрантом доменів!

В базі даних UANIC реєстранти мають ідентифікатор, який називається nic-handle. Отримати його дуже просто – заходимо на сайт hostmaster.net.ua і клацаємо посилання Реєстрація запису про приватну особу На сторінці, що відкриється, потрібно заповнити дані про себе. Обов’язкові дані позначені зірочкою. Майте на увазі, що ці дані будуть доступні для загального перегляду через службу WHOIS. З цим необхідно погодитися, поставивши вгорі сторінки крапочку напроти варіанта “так” (країна має знати своїх героїв! :)) В останньому полі сторінки можна написати бажаний nic-handle (не менше двох та не більше чотирьох літер). Якщо такий ідентифікатор вже існує, до нього буде дописане число. Якщо ви залишите це поле порожнім, ідентифікатор буде сформовано автоматично з перших літер вашого імені та прізвища. Заповнивши всі необхідні поля, натискайте кнопку Send Через деякий час на вказану вами адресу електронної пошти прийде повідомлення такого змісту:

Вітаємо! Цей лист є автоматичним повідомленням реєстраційної системи UANIC про створення нового об’єкту.

В реєстраційній системі UANIC зареєстровано запис про особу (nic-handle) NHNDL. Перевірити реєстраційні дані цього запису можна на сторінці https://hostmaster.net.ua/?nicadv Ваш пароль для редагування реєстраційних даних у Вашому записі про особу NHNDL: *****************

Тепер ви є реєстрантом і можете подавати реєстратору заявку на делегування домену. Але поки що цього робити не варто, спочатку треба припаркувати домен.

Крок 2. Припаркуйте домен до сайту!

Разом з хостингом ви зазвичай отримуєте інструмент для адміністрування свого сайту. Таким інструментом найчастіше є CPanel або VistaPanel. Саме ці інструменти й використовуються для паркування доменів. Нехай, наприклад, ми отримали місце для нашого сайту на безкоштовному хостингу host-ua.ogr.ua, і наш сайт наразі доступний за адресою http://holopupenko.host-ua.org.ua/ Заходимо з нашим логіном у VistaPanel і натискаємо посилання “Parked Domains”

На сторінці, що відкрилася вводимо домен phpbeginner.rv.ua, вказуємо, що хочемо припаркувати його до сайту holopupenko.host-ua.org.ua і натискаємо кнопку Add Parked Domain. Зверніть увагу! На цій сторінці є важлива інформація, яка буде потрібна нам в подальшому, а саме, адреси серверів імен для нашого сайту:

ns1.host-ua.org.ua
ns2.host-ua.org.ua`

Крок 3. Подавайте заявку реєстратору!

Тепер на сайт hostmaster.net.ua і клацаємо посилання Особливості реєстрації доменів другого рівня Обираємо домен, який нас цікавить, наприклад rv.ua. Бачимо: Free Image Hosting at www.ImageShack.us Як бачимо, подати заявку можна через веб-сайт,  або через електронну пошту. Розгляну другий варіант, оскільки через сайт – простіше. Отож,  щоб зареєструвати домен phpbeginner.rv.ua, потрібно надіслати таке повідомлення E-mail.

Кому query _at_ auto.uanic.ua

Тема ADD phpbeginner.rv.ua

Тіло повідомлення

domain: phpbeginner.rv.ua
descr: PHP beginner'sNotes (blog)
admin-c: NHNDL-UANIC
tech-c:  NHNDL-UANIC
nserver: ns1.host-ua.org.ua
nserver: ns2.host-ua.org.ua
changed: holopupenko&#64;mserver.com 20091117
source: UANIC

Пояснення рядків.

domain – доменне ім’я, яке ми просимо делегувати.

descr – короткий опис сайту

admin-c – адміністративний контакт домену. Вказуємо тут нік-хендл, який ми отримали на кроці 1, з суфіксом -UANIC.

tech-c – технічний контакт домена. В нашому випадку це знову наш нік-хендл, але взагалі це може бути інша особа

nserver – це той сервер імен, адресу якого ми дізналися на кроці 2. Таких серверів завжди кілька, всі їх пишемо.

changed – тут пишемо наш E-mail і дату подачі заявки.

source – тут пишемо UANIC.

Ну ось. Тепер перевіряємо свої поштові скриньки. Якщо заявка, яку ми відправили, помилкова, через деякий час система надішле відповідь FAILED і причину помилки.

Якщо ж все гаразд, то приходять послідовно 3 повідомлення.

Перше про те, що заявка прийнята і поставлена в чергу:

Domain: phpbeginner.rv.ua
-------- [ЗАЯВКА ПРИЙНЯТА] -------- 
ADD phpbeginner.rv.ua
domain: phpbeginner.rv.ua
admin-c: NHNDL-UANIC
tech-c: NHNDL-UANIC
nserver: ns1.host-ua.org.ua
nserver: ns2.host-ua.org.ua
remark: PHP beginner's notes (blog)
changed: holopupenko @ mserver.com 20091117
source: UANIC
Заявка передана на обробку до системи UANIC.
Про подальший хід обробки заявки буде повідомлено технічному контакту домена
Це відповідь автоматичної системи. Будь ласка, не відповідайте на цей лист.
Правила публічних доменів, вимоги до заявок - див. на http://hostmaster.net.ua/2ld/
Оформити та перевірити правильність заявки можна на сайті http://auto.uanic.ua

Друге про те, що обробку заявки відкладено до отримання підтвердження від особи, відповідальної за адміністрування (нік-хендл якої вказаний в admin-c):

Обробку заявки номер 2544220 було відкладено за наступних причин:
Не надано підтвердження відповідальної особи
Про хід та результати обробки заявки Вас буде повідомлено окремо.
Процедура обробки заявок на домени описана на https://hostmaster.net.ua/?pubdom
-- UA Registration System

Третє повідомлення приходить на адресу особи, відповідальної за адміністрування (цю адресу ми вказували, коли реєстрували nic-handle на кроці 1) з проханням підтвердити або відхилити заявку:

У вхідну чергу адміністратора публічного домену rv.ua надійшла
Заявка на делегування доменного імені phpbeginner.rv.ua.
Копію заявки дивіться нижче.
Підтвердити заявку можна на сайті за адресою: https://hostmaster.net.ua/confirm.php?code=E33VCDIDKVRK4565446 або через email, давши відповідь на цей лист.

Інструкція для оформлення підтвердження по email. В разі, якщо ви відповісте з рядком "Y", заявку буде задовільнено. В іншому разі (в тому числі при відсутності відповіді) заявку буде відхилено.

!!! Не видаляйте наступні рядки з номером заявки та контрольною сумою.
application: 2544220 checksum: 25007
Будь ласка, дайте відповідь (reply) на цей лист, видаливши один рядок з цих двох: approve: Y (Не заперечую проти Делегування)     
approve: N (Заперечую проти Делегування)
Заявка надійшла від holopupenko @ mserver.com
Date: Tue, 17 Nov 2009 12:04:35 +0200
Subject: ADD phpbeginner.rv.ua
operation: ADD accepted: 17.11.09 12:05:10
domain: phpbeginner.rv.ua
admin-c: NHNDL-UANIC
tech-c: NHNDL-UANIC
nserver: ns1.host-ua.org.ua
nserver: ns2.host-ua.org.ua remarks:
PHP beginner's notes (blog) status:
SUSPENDED reason: Не надано підтвердження відповідальної особи
Адреса для відповіді - robot @ reply.uanic.ua
Якщо реєстрацією вашого домену займається інша особа чи організація (провайдер, тощо), перешліть їй цього листа.

**Заявку потрібно підтвердити, надіславши у відповідь це саме повідомлення, але з видаленим рядком ** approve: N Або можна просто відкрити в браузері посилання, вказане у повідомленні. Після підтвердження приходить нарешті повідомлення про успішне делегування домену:

Створено новий запис про доменне ім'я:
domain: phpbeginner.rv.ua
admin-c: NHNDL-UANIC
tech-c: NHNDL-UANIC
status: OK-UNTIL 20101117121758
dom-public: NO
nserver: ns1.host-ua.org.ua
nserver: ns2.host-ua.org.ua
remark: PHP beginner's notes (blog)
changed: UARR166-UANIC 20091117121758
source: UANIC

Аллєс! Домен зареєстровано! Тепер в базі даних кореневих DNS-серверів зони .UA створено запис, що IP-адресу сайту http://phpbeginner.rv.ua треба запитувати в сервера ns1.host-ua.org.ua або в ns2.host-ua.org.ua А ці сервери, в свою чергу, будуть асоціювати http://phpbeginner.rv.ua з http://holopupenko.host-ua.org.ua

Заувага 1. Бази даних на DNS-серверах можуть перебудовуватися досить довго. Тому наш сайт може стати доступним за новою адресою не відразу, а через кілька годин, або інколи навіть через кілька днів. Перевірити, чи правильно налаштовано домен можна тут

Заувага 2. Доменне ім’я делегується на рік. Термін делегування потрібно вчасно продовжувати, надіславши електронним повідомленням заявку RENEW на ту саму адресу, на яку посилалася заявка ADD: Subject: RENEW zzz.domain.ua domain: zzz.domain.ua Боятися, що забудете надіслати цю заявку, не варто, бо, коли термін делегування домену підходитиме до кінця, система UANIC повідомить вам про це.

Заувага 3. Буває, що хостери не надають адрес серверів імен (нейм-серверів). В такому випадку можна скористатися безкоштовними нейм-серверами, зареєструвавши зону на одному з таких сайтів: * http://freedns.afraid.org/ * http://www.zoneedit.com/ * http://www.everydns.net/ Тоді необхідно на, скажімо, zoneedit.com прив’язати зону до свого хоста, а тоді при складанні заявки ADD вказувати нейм-сервери ZoneEdit. Детально розбирати питання в цій статті не буду.

Більше інформацію про процедуру оформлення заявок можна прочитати тут Ось і усе, хлопці!

Форми HTML – Теґ <textarea> – поле для введення тексту з багатьох рядків

Поширте інформацію:

Цей теґ схожий на <input type=text>, але дозволяє відправити кілька рядків замість одного. Формат теґу:

<textarea name=ім'я [rows=висота] [cols=ширина] [wrap=тип]>
Текст, який буде відображений в полі на початку
</textarea>

Теґ має закриваючий парний. Параметр cols задає ширину поля в символах, параметр rows – його висоту в символах. Параметр wrap визначає, як буде виглядати текст в полі для введення. Може набувати одного з трьох значень (за замовчуванням мається на увазі none):

  • virtual – найбільш зручний тип для введення. З правого краю поля розміщується смуга прокрутки і текст, який набирає користувач, зовні виглядає розбитим на рядки, ширини, відповідної полю для введення, причому перенос робиться по словах. Проте всередині символ нового рядка вставляється лише при натисканні клавіші <Enter>;
  • physical – залежить від реалізації браузера, зазвичай дуже схоже на none;
  • none – текст відображається так, як вноситься. Якщо він не поміщається в полі, активізуються смуги прокрутки (в тому числі і горизонтальна).

Після відправлення форми текст, що ввів користувач, як звичайно, передається парою значень ім’я=текст, аналогічно з тегом однорядкового поля для введення <input type=text>.

Масиви – “квінтесенція мудрості”

Поширте інформацію:

В PHP розрізняють списки (масиви з числовими індексами) та асоціативні масиви, ключами (індексами) в яких є рядки (асоціативні масиви іноді називають “хеші”). Насправді всередині PHP вони реалізовані однаково, тому функціям, які вимагають список, майже завжди можна передавати асоціативний масив і навпаки.
Як відомо, в PHP немає потреби оголошувати змінних. Тому ініціалізувати список дуже просто:

$NamesList[0] = "serhiy";
$NamesList[1] = "mary";

А можна ще простіше:

$NamesList[] = "sashko";

Така інструкція створює новий список (або додає елемент в кінець вже існуючого), автоматично нумеруючи елементи.
Асоціативний масив створюється аналогічно, але замість числових ключів треба вказувати рядки (будь-які рядки без обмежень):

$Names["Колобок"] = "Стіпан";
$Names["Мотузочка"] = "Терешко";

Далі можна вказувати команди:

echo $Names["Мотузочка];
$f = "Колобок";
echo $Names[$f];

Ще можна створювати або доповнювати масиви за допомогою інструкції array:

// Створює порожній масив $Names
$Names = array();
// Створює такий самий масив, як і в попередньому прикладі
$Names = array("Колобок"=>"Стіпан", "Мотузочка"=>"Терешко");
// Створює список з іменами (пронумерований 0, 1, 2)
$NamesList = array("serhiy", "mary", "sashko");

Елементи списка можна завантажити у набір змінних за допомогою інструкції list :

list($name, $surname, $age) = $DataArray;

Можна задіяти будь-яку кількість змінних – якщо в списку не вистачить елементів, щоб їх заповнити, змінні будуть невизначеними.

Багатовимірні масиви – це також дуже просто. Наприклад, щоб зберігати, крім імені, також вік людини, можна створити масив:

$Names["Колобок"] = array("name"=>"Стіпан","age"=>25);
$Names["Мотузочка"] = array("name=>"Терешко","age"=>23);

або так:

$Names = array(
"Колобок"=>array("name"=>"Стіпан","age"=>25),
"Мотузочка"=>array("name=>"Терешко","age"=>23));

А ось масив, перший індекс якого – числовий, а інші – рядкові:

$Data[] = array("person_id"=>10, "person_name"=>"Оксана");

Ось так, малята. Про перебір елементів масивів і операції над масивами буде далі.

Форми HTML – Теґ <input> – різні поля для введення

Поширте інформацію:

Існує багато різновидів цього теґу. Нижче перераховані найбільш вживані. В квадратних дужках вказані необов’язкові параметри.

Текстове поле (text)

<input type = text name = ім'я [value = значення] [size = розмір] [maxlength = число]>

Створює поле для введення тексту приблизно в size знаків і максимально допустимою довжиною maxlength. Якщо задане значення атрибута value, то в текстовому полі початково буде відображений вказаний рядок.

Поле для введення пароля (password)

<input type = password name = ім'я [value = значення] [size = розмір] [maxlength = число]>

Повністю аналогічне теґу <input type = text>, але символи, які набирає користувач, не будуть відображатися на екрані.

Приховане текстове поле (hidden)

<input type = hidden name = ім'я value = значення>

Створює невідображуване (приховане) поле, яке застосовується, щоб передати сценарію деяку службову інформацію.

Незалежний перемикач (checkbox)

<input type = checkbox name = ім'я value = значення [checked]>

Генерує незалежний перемикач (прапорець). Якщо користувач встановлює галочку, сценарію передається рядок ім’я = значення, інакше не передається нічого. Якщо заданий атрибут checked, прапорець буде початково встановлений, інакше – скинутий.

Залежний перемикач (radio)

<input type = radio name = ім'я value = значення [checked]>

Відображає залежний перемикач (т.зв. радіокнопку). Вона відрізнається від прапорця тим, що прапорці незалежні один від одного, а радіокнопка може бути вибрана лише одна із своєї групи. Групу утворюють радіокнопки з однаковими значеннями атрибута name

Кнопка відправлення форми (submit)

<input type = submit [name = ім'я] value = текст_кнопки>

Створює кнопку підтвердження з іменем name і з текстом на кнопці value. Якщо параметр name заданий сценарію разом із іншими параметрами буде передана й пара ім’я = текст_кнопки.

Кнопка скидання форми (reset)

<input type = reset value = текст_кнопки >

Створює кнопку, при натисканні якої всі елементи форми будуть скинуті в початкові значення. Форма не відправляється на сервер.

Малюнок для відправлення форми (image)

<input type = image [name = ім'я] src = зображення >

Створює зображення, при натисканні якого мишею відбувається те ж саме, що й при натисканні кнопки submit, за винятком того, що сценарію будуть передані координати точки, в якій відбувся клік мишею (відраховані від лівого верхнього кута малюнка). Якщо атрибут name заданий, то атрибути будуть передані у форматі ім’я_x=X&ім’я_y=Y, де (X,Y) – координати зображення. Якщо ж атрибут name не заданий, то у форматі x=X&y=Y

Рядки в одинарних і подвійних апострофах

Поширте інформацію:

Рядок, обрамлений одинарними апострофами (наприклад, ‘сало’), трактується точно так, як записаний, за винятком двох спеціальних послідовностей символів:

  • послідовність \’ трактується як апостроф і призначена для вставки апострофа в рядок, обрамлений апострофами
  • послідовність \\ трактується як один зворотний слеш і дозволяє вставляти слеші в рядок

Решта символів позначають самі себе, зокрема символ $ не має ніякого спеціального значення, отже, змінні всередині рядка, обрамленого апострофами, не інтерполюються (їх значення не підставляється).

Рядок же, обрамлений лапками (“подвійними апострофами”), має значно багатший набір спеціальних мета-символів. Деякі з них:

  • \n позначає символ нового рядка
  • \r позначає символ повернення каретки
  • \t позначає символ табуляції
  • \$ позначає символ $, щоб, текст, який іде за ним, випадково не інтерполювався, як змінна
  • \” позначає лапки
  • \\ позначає зворотний слеш
  • \xNN позначає символ, шістнадцятковий код якого дорівнює NN

Змінні в рядках, обрамлених лапками, інтерполюються. Наприклад:

$a = "Hello";
echo "$a World!";

Цей код виведе Hello world!, тобто змінна $a в рядку була інтерпольована (замінена на своє значення).

Ще приклад:

$a = "Hell"; // слово Hello без букви o
echo "$ao world!";

Як ви думаєте, буде виведено той самий рядок? А як PHP дізнається, мали ми на увазі змінну $a, чи змінну $ao ? Очевидно, ніяк. Цей код генерує повідомлення про те, що змінна $ao не визначена. Як вирішити проблему? Є аж три способи:

$a = "Hell"; // слово Hello без букви o
echo $a."o world!"; // перший спосіб
echo "{$a}o world!"; // другий спосіб
echo "${a}o world"; // третій спосіб

Як бачимо, фігурні дужки в деяких контекстах також можуть трактуватися як спецсиволи.