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

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

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

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

Добавлен: 24.05.2024

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

Скачиваний: 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. Лекція:

getenv('QUERY_STRING');

Завдяки цьому можна по методу GET передавати дані в якому-небудь іншому вигляді. Наприклад, вказувати тільки значення декількох параметрів через знак плюс, а в скрипті розбирати рядок запиту на частини або можна передавати значення всього одного параметра. В цьому випадку в масиві $_GET з'явиться порожній елемент з ключем, рівним цьому значенню (всьому рядку запиту), причому символ " + ", що зустрівся в рядку запиту, буде замінений на підкреслення " _ ".

Методом POST дані передаються тільки за допомогою форм, і користувач ( клієнт ) не бачить, які саме дані відправляються серверу. Щоб їх побачити, хакер повинен підмінити нашу форму своєї. Тоді сервер відправить результати обробки неправильної форми не туди, куди потрібно. Щоб цього уникнути, можна перевіряти адресу сторінки, з якою були послані дані. Це можна зробити знову ж таки за допомогою функції getenv() :

getenv('HTTP_REFERER');

Тепер самий час вирішити задачу, сформульовану на початку лекції.

Приклад обробки запиту за допомогою PHP

Нагадаємо, в чому полягала задача, і уточнимо її формулювання. Потрібно написати форму для реєстрації учасників заочної школи програмування і після реєстрації відправити учаснику повідомлення. Ми назвали це повідомлення універсальним листом, але воно трохи відрізнятиметься від того листа, який ми склали на попередній лекції. Тут ми також не відправлятимемо що-небудь по електронній пошті, щоб не уподібнюватися спамерам, а просто згенеруємо це повідомлення і виведемо його на екран браузера. Початковий варіант форми реєстрації ми вже приводили вище. Змінимо його так, щоб кожен, хто реєструється, міг вибрати скільки завгодно курсів для відвідування, і не підтверджуватимемо отримання реєстраційної форми.

<h2>Форма для реєстрації студентов</h2>

<form action="1.php" method=POST>

Ім'я <br><input type=text name="first_name"

value="Введите Ваше имя"><br>

Прізвище <br><input type=text name="last_name"><br>

E-mail <br><input type=text name="email"><br>

<p> Виберіть курс, який ви б хотіли відвідувати:<br>

<input type=checkbox name='kurs[]' value='PHP'>PHP<br>

<input type=checkbox name='kurs[]' value='Lisp'>Lisp<br>

<input type=checkbox name='kurs[]' value='Perl'>Perl<br>

<input type=checkbox name='kurs[]' value='Unix'>Unix<br>

<P>Что ви хочете, щоб ми знали про вас? <BR>

<textarea name="comment" cols=32 rows=5></textarea>

<input type=submit value="Отправить">


<input type=reset value="Отменить">

</form>

Лістинг 4.4. form_final.html

Тут все достатньо просто і зрозуміло. Єдине, що можна відзначити, – це спосіб передачі значень елемента checkbox. Коли ми пишемо в імені елемента kurs[], це значить, що перший відзначений елемент checkbox буде записаний в перший елемент масиву kurs, другий відзначений checkbox – в другий елемент масиву і т.д. Можна, звичайно, просто дати різні імена елементам checkbox, але це ускладнить обробку даних, якщо курсів буде багато.

Скрипт, який все це розбиратиме і оброблятиме, називається 1.php (форма посилається саме на цей файл, що записане в її атрибуті асtion ). За умовчанням використовується для передачі метод GET, але ми вказали POST . За отриманими даними від людини, що реєструвалася, скрипт генерує відповідне повідомлення. Якщо людина вибрала якісь курси, то йому виводиться повідомлення про час їх проведення і про лекторів, які їх читають. Якщо людина нічого не вибрала, то виводиться повідомлення про наступний збір заочної школи програмістів (ЗШП).

<?

// створимо масиви відповідностей курс-час його проведення і курс-його лектор

$times = array("PHP"=>"14.30","Lisp"=>"12.00"

"Perl"=>"15.00","Unix"=>"14.00");

$lectors = array("PHP"=>"Василий Васильович"

"Lisp"=>"Иван Іванович", "Perl"=>"Петр Петрович", "Unix"=>"Семен Семенович");

define("SIGN","С пошаною, адміністрація");

// визначаємо підпис листа як константу

define("MEETING_TIME","18.00");

// задаємо час збору студентів

$date = "12 травня"; // задаємо дату проведення лекцій

//починаємо складати текст повідомлення

$str = "здрастуйте, поважаний " . $_POST["first_name"]

. " " . $_POST["last_name"]."!<br>";

$str .= "<br>Сообщаем Вам, що ";

$kurses[] = $_POST["kurs"]; // збережемо в цій змінній

// список вибраних курсів

if (!isset($kurses)) { // якщо не вибраний жоден курс

$event = "наступний збір студентів";

$str .= "$event відбудеться $date ". MEETING_TIME . "<br>";

} else { // якщо хоча б один курс вибраний

$event = "вибрані Вами лекції відбудуться $date <ul>";

//функція count обчислює число елементів в масиві

$lect = "";

for ($i=0;$i<count($kurses);$i++){

// для кожного вибраного курсу

$k = $kurses[$i]; // запам'ятовуємо назву курсу

$lect = $lect . "<li>лекция по $k в $times[$k]";


// складаємо повідомлення

$lect .= " (Ваш лектор $lectors[$k])";

}

$event = $event . $lect . "</ul>";

$str .= "$event";

}

$str .= "<br>". SIGN; // додаємо підпис

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

?>

Лістинг 4.5. Скрипт 1.php, оброблювальний форму form_final.html


5. Лекція:

Тема: Функції в PHP

Мета: У лекції розглядаються: поняття функції, функції, створені користувачем, аргументи функцій, передача аргументів за значенням і по посиланню, значення аргументів за замовчуванням і значення, що повертають функцією (функція return()). Приклад - створення web-інтерфейсу для генерації HTML-форми.

  1. Що мається на увазі під терміном «клієнт»?

  2. Що мається на увазі під терміном «сервер»?

  3. Хто або що може виступати в ролі клієнта?

  4. Хто або що може виступати в ролі сервера?

  5. Як відбувається взаємодія між клієнтом і сервером?

  6. Хто ініціює взаємодію клієнта і сервера?

  7. Перерахуйте і охарактеризуйте наявні типи серверів.

  8. Що є web-сервером?

  9. Які приклади серверів можна навести?

  10. Що таке протокол?

  11. Охарактеризуйте протокол HTTP.

  12. З чого складається клієнтський запит до сервера?

  13. З чого складається відповідь сервера клієнтові?

  14. Які методи доступу використовуються для обміну даними між клієнтом і сервером?

  15. Що таке URL?

  16. Опишіть призначення методу POST. Як він працює?

  17. Опишіть призначення методу GET. Як він працює?

  18. Опишіть призначення методу HEAD. Як він працює?

  19. Що таке HTML-форма?

ПЛАН

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

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

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

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

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

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

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

У цій лекції будуть розглядатися питання створення та використання функцій в PHP. Говорячи "функції", ми не маємо на увазі всі існуючі в PHP функції, а лише функції, створені користувачем. Ми розглянемо способи завдання таких функцій, методи передачі аргументів, використання аргументів зі значенням за замовчуванням і значення, що повертаються функцією.

Як приклад створимо web-інтерфейс для генерації html-форми. Тобто користувач вибирає, не звертаючись до програмування, які елементи форми потрібно створити, і характеристики цих елементів, а наша програма генерує потрібну форму.


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

Для чого потрібні функції? Щоб відповісти на це питання, потрібно зрозуміти, що взагалі являють собою функції. У програмуванні, як й у математику, функція є відображенням безлічі її аргументів на безліч її значень. Тобто функція для кожного набору значень аргументу повертає якісь значення, що є результатом її роботи. Навіщо потрібні функції, спробуємо пояснити на прикладі. Класичний приклад функції в програмуванні - це функція, що обчислює значення факторіала числа. Тобто ми задаємо їй число, а вона повертає нам його факторіал. При цьому не потрібно для кожного числа, факторіал якого ми хочемо одержати, повторювати той самий код - досить просто викликати функцію з аргументом, рівним цьому числу.

//Функція обчислення факторіала натурального числа

<?php

function fact($n){

if ($n==0) return 1;

else return $fact = $n * fact($n-1);

}

echo fact(3);

echo fact(50);

?>

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

Подивимося, як у загальному випадку виглядає завдання (оголошення) функції. Функція може бути визначена за допомогою наступного синтаксису:

function Ім'я_функції (параметр1, параметр2, ... параметрN){

блок_дій

return <значення, що повертає функція>;

}

Ім'я_функції й імена параметрів функції (параметр1, параметр2 і т.д.) повинні відповідати правилам найменування в PHP. Імена функцій нечутливі до регістра. Параметри функції - це зміні мови, тому перед назвою кожного з них повинен стояти знак $. Блок_дій у тілі функції має містити будь-який правильний PHP-код (не обов'язково залежний від параметрів). І нарешті, після ключового слова return повинне йти коректний php-вирз (що-небудь, що має значення). Крім того, у функції може й не бути параметрів, як і значення, що повертається.

Як відбувається виклик функції? Указується ім'я функції і у круглих дужках список значень її параметрів, якщо такі є:

<?php

Ім'я_функції ("значення_для_параметра1", "значення_для_параметра2",...);