- •1. Основні технології розробки web-додатків
- •1.1 Протокол http
- •Основні технології розробки web-додатків
- •1.3 Короткі підсумки
- •2 Структура html-документа
- •2.1. Елементи мови html
- •2.2 Структура html-документа
- •2.2.1.Початок
- •2.2.2 Тіло документа
- •Заголовки
- •Нижче на малюнку показаний результат використання наступних заголовків:
- •Списки в html
- •2.3 Використання графіки в html
- •2.4 Таблиці
- •Атрибут border. Значення цього атрибута визначає як будуть виглядати рамки таблиці. Якщо атрибут не заданий або його значення дорівнює нулю, то таблиця не матиме рамок.
- •2.5 Html-форми Форми використовуються в www для передачі інформації від клієнта до сервера.
- •3 Каскадні таблиці стилів css
- •3.1 Загальні відомості про css
- •3.2 Додавання стилю на веб-сторінку
- •3.2.1. Таблиця пов'язаних стилів
- •3.2.2 Таблиця глобальних стилів
- •3.2.3 Внутрішні стилі
- •3.3 Синтаксис css
- •3.3.1 Властивості css
- •3.3.2 Селектори тегів
- •3.3.3 Селектори класів
- •3.3.4 Селектори-ідентифікатори
- •3.3.5 Контекстні селектори
- •3.3.6 Сусідні селектори
- •3.3.7 Дочірні селектори
- •Селектор зі значенням атрибута – встановлює стиль елемента в тому випадку, якщо задано певне значення зазначеного атрибута. Синтаксис застосування наступний.
- •Наприклад:
- •3.3.9 Універсальний селектор
- •3.4 Псевдокласи
- •3.4.2 Короткі підсумки
- •4 Типи і структури даних в javascript
- •Скрипт в html документі
- •4.2 Змінні та літерали
- •4.2.1 Літерали
- •4.3 Оператори JavaSscript
- •4.3.2 Оператор обробки рядків
- •4.3.3 Оператор typeof Аргументом оператора є змінна або вираз. Оператор повертає рядок, що описує тип аргументу(див. Табл. 4.4).
- •4.3.4 Умовний оператор (Оператор If)
- •4.3.5 Оператор перемикання (switch)
- •4.3.6 Оператори циклу
- •4.4 Масиви
- •Метод reverse () – застосовується для зміни на протилежний порядок елементів масиву всередині масиву. Припустимо, масив натуральних чисел впорядкований по зростанню:
- •Впорядкуємо його по спаданню:
- •4.5.2 Інструкція return
- •4.5.3 Виклик функції
- •4.6.2 Константи
- •4.6.3 Математичні функції.
- •4.6.4 Приклад. Генератор випадкових чисел
- •4.7 Контрольні питання
- •Події та обробники подій
- •5.1.1 Спливання подій в dhtml
- •5.1.2 Стандартні події dhtml.
- •Способи зв'язування подій
- •5.2.1 Введення подій в якості атрибутів.
- •5.2.2 Обробники подій як функції.
- •5.2.3 Динамічне зв'язування подій у сценарії.
- •5.2.5 Атрибути for і event.
- •Об'єкти браузера
- •Об'єктна модель браузера
- •Об'єкт window (Операції з вікнами)
- •Об'єкт navigator (властивості браузера)
- •Об'єкт location (Інформація про документ і вікна браузера)
- •Об'єкт history (Переходи між Web-сторінками )
- •Робота з діалоговими вікнами
- •Управління документом
- •Об'єктна модель документа
- •7.1.1 Сімейства, властивості і методи
- •Дерево документа (Document Tree)
- •Переміщення по Дереву Документа.
- •Динамічний вміст
- •8.1.1 Найбільш популярні моделі даних
- •9.3.1 Поділ інструкцій.
- •9.3.2 Коментарі.
- •9.3.3 Змінні, константи й оператори
- •9.3.6 Типи даних
- •Висновок
- •Керуючі конструкції рнр
- •Умовні оператори
- •// Ця програма надрукує всі парні цифри
- •{// Друкуємо цифру, якщо вона парна
- •Оператори передачі управління
- •Оператори включення
- •10.5 Висновок
- •Функції і масиви в php
- •Функції, визначені користувачем
- •11.1.1 Повернення значень функцією.
- •Рекурсивні функції.
- •11.1.3 Функції-змінні.
- •11.1.4 Побудова бібліотек функцій.
- •11.2.1 Операції з масивами.
- •11.2.2 Сортування масивів.
- •Sort_regular – порівнювати елементи масиву звичайним чином; sort_numeric – порівнювати елементи масиву як числа; sort_string – порівнювати елементи масиву як рядки.
- •11.2.3 Сортування масиву за ключами.
- •11.2.4 Сортування за допомогою функції, заданої користувачем.
- •Ми застосували нашу власну функцію сортування до всіх елементів масиву.
- •11.2.5 Застосування функції до всіх елементів массиву.
- •11.2.6 Виділення підмасива
- •Висновок
- •12 Строкові функції php
- •12.1 Функції пошуку в тексті (substr(), strpos(), strrpos(), strstr(), strchr(), stristr(), strrchr(), substr_count(), strspn(), strcspn())
- •12.2 Функції strlen(), chr() і ord()
- •12.3 Trim-функції (функції видалення символів відступу) trim (), ltrim (), rtrim (), chop ()
- •12.4 Функції форматного виведення. Специфікатори перетворення printf (), sprintf (), sscanf ().
- •12.5 Функції перетворення кодування
- •12.6 Функції роботи з бінарними даними pack () unpack ()
- •12.7 Функції роботи з блоками тексту (wordwrap (), str_replace (), substr_replace (), strtr (), stripslashes (), stripcslashes (), addslashes (), addcslashes (), quotemeta (), strrev ())
- •12.8 Функції об'єднання / поділу рядків (str_repeat (), str_pad (), chunk_split (), strtok (), explode (), implode (), join ())
- •12.9 Функции сравнения строк (strcmp(), strncmp(), strcasecmp(), strncasecmp(), strnatcmp(), strnatcasecmp(), similar_text(), levenshtein())
- •12.10 Функції роботи з url (parse_url (), parse_str (), rawurlencode (), rawurldecode (), base64_encode (), base64_decode ())
- •12.11 Функції перетворення регістру (strtolower (), strtoupper (), ucfirst (), ucwords ())
- •12.13 Функція htmlspecialchars
- •13 Робота з файлами
- •13.1 Відкриття і закриття файлів
- •13.2 Читання з файлів і запис у файли
- •13.2.1 Читання з файлів.
- •13.2.2 Запис в файли
- •13.5 Переміщення по файлам
- •13.6 Робота з каталогами
- •13.7 Завантаження файлу на сервер
- •14.1 Авторизація доступу
- •14.2 Механізм сесій
- •14.3 Налаштування сесій
- •14.4.1 Відкриття сесії
- •14.4.2 Створення сесії
- •14.4.3 Реєстрація змінних сесії
- •14.4.4 Видалення змінних сесії
- •14.5 Безпека
- •14.6 Висновок
- •15.1 Проектування
- •15.2 Система адміністрування контенту
- •15.2.1 Вимоги до системи адміністрування контенту (cms).
- •15.2.2 Адміністрування списку користувачів.
- •15.2.3 Вхід на сторінку адміністрування
- •15.2.4 Відкриття списку користувачів.
- •15.2.5 Редагування запису користувача.
- •15.2.6 Видалення користувача
14.2 Механізм сесій
Сесія – це механізм, який дозволяє створювати і використовувати змінні, що зберігають своє значення протягом всього часу роботи користувача з сайтом.
Ці змінні для кожного користувача мають різні значення і можуть використовуватися на будь-якій сторінці сайту до виходу користувача з системи. При цьому кожен раз, заходячи на сайт, користувач отримує нові значення змінних, що дозволяють ідентифікувати його протягом цього сеансу або сесії роботи з сайтом. Звідси і назва механізму – сесії.
Завдання ідентифікації користувача вирішується шляхом присвоєння кожному користувачеві унікального номера, так званого ідентифікатора сесії (SID, Session IDentifier). Він генерується PHP в той момент, коли користувач заходить на сайт, і знищується, коли користувач йде з сайту, і представляє собою рядок з 32-х символів (наприклад, ac4f4a45bdc893434c95dcaffb1c1811). Цей ідентифікатор передається на сервер разом з кожним запитом клієнта і повертається назад разом з Існує кілька способів передачі ідентифікатора сесії:
• За допомогою cookies. Cookies були створені спеціально як метод однозначної ідентифікації клієнтів і являють собою розширення протоколу HTTP. В цьому випадку ідентифікатор сесії зберігається в тимчасовому файлі на комп'ютері клієнта, що послав запит. Метод, безсумнівно, хороший, але багато користувачів відключають підтримку cookies на своєму комп'ютері через проблеми з безпекою.
• За допомогою параметрів командного рядка. В цьому випадку ідентифікатор сесії автоматично вбудовується в усі запити (URL), що передаються серверу, і зберігається на стороні сервера.
Наприклад: адреса http://green.nsu.ru/test.php перетворюється на адресу http://green.nsu.ru/test.php?PHPSESSID=ac4f4a45bdc893434c95dcaffb1c1811
Цей спосіб передачі ідентифікатора використовується автоматично, якщо у браузера, що відправив запит, вимкнений cookies. Він досить надійний - передавати параметри в командному рядку можна завжди. З іншого боку, ідентифікатор сесії можна підглянути, скористатися збереженим варіантом у рядку браузера або підробити. Хоча, звичайно, всі ці проблеми або надумані, або їх можна вирішити.
Наприклад, хто зможе запам'ятати рядок з 32 різних символів? А якщо правильно організувати роботу з сесіями (вчасно їх знищувати), то навіть збережений в браузері номер сесії нічого не дасть.
14.3 Налаштування сесій
Перш ніж почати працювати з сесіями, слід розібратися в тому, як коректно налаштовувати їх обробку інтерпретатором PHP. Сама робота з сесіями в PHP підтримується за замовчуванням. Це означає, що встановлювати ніяких додаткових елементів не потрібно. А ось знати, що записано в налаштуваннях цього модуля, корисно, щоб уникнути помилок при роботі з ним.
Налаштування PHP, в тому числі і для роботи з сесіями, прописуються у файлі php.ini. Звернемося до цього файлу.
Як ми вже знаємо, ідентифікатор сесії (число, за яким можна унікально ідентифікувати клієнта, що послав запит) зберігається або на комп'ютері-сервері, або на комп'ютері-клієнті, або і там, і там.
Параметр session.save_path в php.ini, визначає, де на сервері зберігатимуться дані сесії. Через нього найчастіше виникають проблеми для Windows-серверів, тому що за замовчуванням значення session.save_path встановлено в / tmp. І якщо в кореневій директорії сервера такої папки немає, то при запуску сесій буде видаватися помилка.
Сервер може обробляти велику кількість сесій одночасно, і всі їхні тимчасові файли будуть зберігатися в директорії, заданої параметром session.save_path. Якщо система погано працює з папками великого розміру, то зручно використовувати піддиректорії. Для цього, крім назви папки, в значення параметра додають ще й число, що визначає глибину вкладеності піддиректорій в цій папці: N; / dir. Це значення потрібно обов'язково взяти в лапки, оскільки крапка з комою є одним із символів коментарів у файлі налаштувань PHP. Всі директорії і піддиректорії для зберігання даних сесії потрібно створити самостійно.
Наприклад: 2; / Temp визначає, що змінні сесій будуть зберігатися в папках виду c: \ Temp \ 0 \ a \, c: \ Temp \ 0 \ b \ і т.п.
Зберігання даних на стороні клієнта здійснюється за допомогою cookies. Роботу PHP з cookies можна налаштувати, зокрема, за допомогою параметрів session.use_cookies, session.cookie_lifetime і т.п.
Параметр session.use_cookies визначає, чи використовувати cookies при роботі з сесіями. За замовчуванням ця опція включена (тобто приймає значення "1").
Параметр session.cookie_lifetime задає тривалість життя cookies в секундах. За замовчуванням це "0", тобто дані в cookies вважаються правильними до закриття вікна браузера.
Крім цих параметрів, корисними можуть виявитися session.name, що визначає ім'я сесії, session.auto_start, що дозволяє автоматично запускати сесії, session.serialize_handler, що задає спосіб кодування даних сесії, і параметр session.cache_expire, що визначає, через скільки хвилин застаріває документ в кеші.
Ім'я сесії session.name за замовчуванням встановлюється як PHPSESSID і використовується в cookies як ім'я змінної, в якій зберігається ідентифікатор сесії. Автоматичний запуск сесій за замовчуванням відключений, але його можна задати, зробивши значення session.auto_start рівним "1". Для кодування даних сесії за замовчуванням використовується php. Старіння даних, які збережені в кеші, відбувається через 180 хвилин.
Існує ще безліч налаштувань, з якими можна познайомитися в документації або безпосередньо в файлі налаштувань php.ini. На наш погляд, знайомства з перерахованими вище параметрами досить для роботи з сесіями в PHP. Так що приступимо.
14.4 Робота з сесіями
При роботі з сесіями розрізняють наступні етапи:
• відкриття сесії;
• реєстрація змінних сесії і їх використання.
