Файл: Опорний конспект.doc

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 24.05.2024

Просмотров: 221

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

СОДЕРЖАНИЕ

1. Історія php

2. Можливості php

3. Установка і настройка по

3.1. Установка Apache 1.3.29 під Windows xp

3.2. Установка php 4.3.4 під Windows

1. Основний синтаксис

1.1 Розділення інструкцій

1.2 Коментарі

2. Змінні, константи і оператори

2.3 Константи

2.4 Оператори

1.2 Оператор else

1.3 Оператор elseif

1.4 Оператор switch

2 Цикли

3 Оператори передачі управління

4 Оператори включення

4. Лекція

2 Типи серверів

3 Протокол http і способи передачі даних на сервер

4 Методи

5 Використання html-форм для передачі даних на сервер

5. Лекція:

1 Функції, створені користувачем

2 Аргументи функцій

3 Списки аргументів змінної довжини

4 Статичні змінні

5 Значення, що повертаються

6 Повернення посилання

7 Внутрішні (убудовані) функції

6. Лекція:

2 Ініціалізація змінних

4 Спадкування extends

5 Оператор ::

6 Оператор parent

7. Лекція:

1 Масиви

2 Операції з масивами

3 Функції обробки масивів

4 Сортування масивів

5 Виділення підмасива

8. Лекція:

Якщо файл включений за допомогою include, то код, що міститься в ньому, успадковує область видимості змінних рядка, де з'явився include . Будь-які змінні викликаного файлу будуть доступні в зухвалому файлі з цього рядка і далі. Відповідно, якщо include з'являється усередині функції зухвалого файлу, то код, що міститься у файлі, що викликається, поводитиметься так, як ніби він був визначений усередині функції. Таким чином, він успадковуватиме область видимості цієї функції. Хоча ми і не знайомилися ще з поняттям функції, все ж таки приводимо тут ці відомості з розрахунку на інтуїтивне його розуміння.

Приклад 3.10. Хай файл для вставки params.inc залишиться таким же, а include.php буде наступним:

<?php

function Footer(){

// оголошуємо функцію з ім'ям Footer

include ("params.inc");

/* включаємо файл params.inc. Тепер його змінними можна користуватися але тільки усередині функції */

$str = "сьогодні: $today <br>";

$str .= "<a href='mailto:somesite.ru'>Страницу створив $user</a>";

echo "$str";

}

Footer();

// викликаємо функцію Footer(). Одержимо:

//Сьогодні: 08.07.05

//Сторінку створив Вася

echo "$user $today";

// виведе кому, оскільки ці змінні видні тільки усередині функції

?>

Приклад 3.10. Область видимості при использовани include

Окрім локальних файлів, за допомогою include можна включати і зовнішні файли, указуючи їх url-адреси. Дана можливість контролюється директивою url_fopen_wrappers у файлі настройок PHP і за умовчанням, як правило, включена. Але у версіях PHP для Windows до PHP 4.3.0 ця можливість не підтримується зовсім, незалежно від url_fopen_wrappers.

include() – це спеціальна мовна конструкція, тому при використовуванні усередині умовних блоків її потрібно брати у фігурні дужки.

<?php

/* Це невірний запис. Одержимо помилку. Ми ж вставляємо не одну команду а кілька, вони тільки записані в іншому файлі */

if ($condition) include("first.php");

else include("second.php");

// А ось так правильно.

if ($condition){ include("first.php"); }

else { include("second.php"); }

?>

Приклад 3.11. Використовування include()

При використовуванні include можливі два види помилок – помилка вставки (наприклад, не можна знайти вказаний файл, невірно написана сама команда вставки і т.п.) або помилка виконання (якщо помилка міститься у файлі, що вставляється). У будь-якому випадку при помилці в команді include виконання скрипта не завершується.


require

Цей оператор діє приблизно так само, як і #include в C++. Все, що ми говорили про include, лише за деякими виключеннями, справедливо і для require . require також дозволяє включати в програму і виконувати який-небудь файл. Основна відмінність require і include полягає в тому, як вони реагують на виникнення помилки. Як вже мовилося, include видає попередження, і робота скрипта продовжується. Помилка в require викликає фатальну помилку роботи скрипта і припиняє його виконання.

Умовні оператори на require() не впливають. Хоча, якщо рядок, в якому з'являється цей оператор, не виконується, то жоден рядок коду з файлу, що вставляється, теж не виконується. Цикли також не впливають на require(). Хоча код, що міститься у файлі, що вставляється, є об'єктом циклу, але вставка сама по собі відбувається тільки одного разу.

В реалізаціях PHP до версії 4.0.2 використовування require() означало, що інтерпретатор обов'язково спробує прочитати файл, що вставляється.

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

Рішення задачі

І нарешті, повернемося до задачі, сформульованої на початку лекції. Ми хочемо створити програму, яку можна б було використовувати для відправки листів (або просто для їх генерації) із запрошеннями на різні заходи безлічі користувачів. В попередній лекції вже розглядався подібний випадок. Зараз ми винесемо всю інформацію про людей і події в окремий файл data.php і напишемо програму, не залежну (ну, може, зовсім трохи залежну) від цієї інформації і її структури. В цьому випадку для того, щоб, наприклад, розширити список адресатів, не потрібно буде змінювати скрипт, що генерує запрошення. Крім того, можна буде використовувати інформацію про людей і події в інших скриптах. В самому скрипті, що генерує запрошення letters.php, ми використовували умовні оператори, цикли, require і інші вивчені раніше конструкції.

<?php

define("SIGN","С пошаною, Вася");

// хай наш підпис буде константою

// інформація про події

$events = array(

"f" => "день відкритих дверей"

"o" => "відкриття виставки"

"p" => "бал випускників");

// наявна інформація про людей (ім'я і електронна адреса)

$people = array(

"ivan" => array(

"name" => "Іван Іванович"

"email"=>"user_ivan@intuit.ru")

"pit" => array(

"name" => "Петро Петрович"

"email" => "user_petr@intuit.ru")


"semen" => array(

"name" => "Семен Семенович"));

// хто куди запрошується

$who_where["ivan"] = "o" ;

// Іван – на виставку

$who_where["pit"] = "p";

// Петро – на бал

$who_where["semen"] = "f";

// Семен – на день відкритих дверей

?>

Лістинг 3.12. data.php

<?php

require("data.php");

// включаємо файл з даними про події

foreach($people as $key => $man_info){

// для кожної людини робимо наступне:

$event_key = $who_where[$key];

// одержуємо подію на яке він запрошується

if ($event_key<>""){

foreach($man_info as $key1 => $info){

// одержуємо ім'я і email конкретної людини

if ($key1=="name")

$str = "шановний (а) $info";

if ($key1=="email") $email = $info;

}

// складаємо запрошення

$str .= "<br>Запрошуємо Вас на ".

$events[$event_key];

switch ($event_key){

// залежно від події додаємо яку-небудь строчку

case "f":

$str .= "<br>Підтвердіть Вашу участь по телефону!";

break;

case "o":

$str .= "<br>Приходите за 15 хвилин до відкриття!";

break;

case "p":

$str .= "<br>Не забудьте подарунок :-)";

break;

}

$str .= "<br>" . SIGN . "<hr>";

// додаємо підпис

echo $str; // виводимо запрошення на екран

/* якщо у вас набудована відправка пошти з допомогою PHP, той лист можна відправити командою mail($email,"Letter",$str); */

}

}

?>

Лістинг 3.13. letters.php


4. Лекція

Тема: Обробка запитів за допомогою PHP

Мета: Лекція присвячена вивченню способів відправки даних на сервер і їх обробці за допомогою PHP. Розглядаються основні поняття клієнт-серверних технологій. Розглядається поняття HTML-форми і відправка даних з її допомогою. Дається коротка характеристика методів Post і Get. Розглядається механізм отримання даних з HTML-форм і їх обробка за допомогою PHP. Приклад – створення форми для реєстрації користувачів на сайті, відправка "універсального листа" що всім реєструвався.

ПЛАН

1 Основи клієнт-серверних технологій

2 Типи серверів

3 Протокол HTTP і способи передачі даних на сервер

4 Методи

5 Використання HTML-форм для передачі даних на сервер

6 Обробка запитів за допомогою PHP

1 Основи клієнт-серверних технологій

На самому початку курсу ми вже говорили про те, що PHP – це скриптовий язик, оброблюваний сервером. Зараз необхідно уточнити, що ж таке сервер, які функції він виконує і які взагалі бувають сервери. Якщо йдеться про сервер, мимовільно спливає в пам'яті поняття клієнта. Все тому, що ці два поняття нерозривно зв'язані. Об'єднує їх комп'ютерна архітектура клієнт-сервер. Звичайно, коли говорять " сервер ", мають на увазі сервер в архітектурі клієнт-сервер, а коли говорять " клієнт " – мають у вигляді клієнт в цій же архітектурі. Отже ж це за архітектура?

Суть її в тому, щоб розділити функції між двома підсистемами: клієнтом, який відправляє запит на виконання яких-небудь дій, і сервером, який виконує цей запит. Взаємодія між клієнтом і сервером відбувається за допомогою стандартних спеціальних протоколів, таких як TCP/IP і z39.50. Насправді протоколів дуже багато, вони розрізняються по рівнях. Ми розглянемо тільки протокол прикладного рівня HTTP (трохи пізніше), оскільки для вирішення наших задач програмування потрібен тільки він. А поки повернемося до клієнт-серверної архітектури і розберемося, що ж таке клієнт і що таке сервер.

Сервер є набором програм, які контролюють виконання різних процесів. Відповідно, цей набір програм встановлений на якомусь комп'ютері. Часто комп'ютер, на якому встановлений сервер, і називають сервером. Основна функція комп'ютера-серверу – по запиту клієнта запустити який-небудь конкретний процес і відправити клієнту результати його роботи.


Клієнтом називають будь-який процес, який користується послугами серверу. Клієнтом може бути як користувач, так і програма. Основна задача клієнта – виконання додатку і здійснення зв'язку з сервером, коли цього вимагає додаток. Тобто клієнт повинен надавати користувачу інтерфейс для роботи з додатком, реалізовувати логіку його роботи і при необхідності відправляти завдання серверу .

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

Послугами одного серверу частіше за все користується декілька клієнтів одночасно. Тому кожний сервер повинен мати достатньо велику продуктивність і забезпечувати безпеку даних.

Логічніше за все встановлювати сервер на комп'ютері, що входить в яку-небудь мережу, локальну або глобальну. Проте можна встановлювати сервер і на окремому комп'ютері (тоді він буде одночасно і клієнтом і сервером ).