Слайд 1Интерактивное программирование
веб-приложений
Преподаватель:
Шварц Александр Юрьевич
Слайд 2Принципы HTTP
Интернет
HTTP-запрос
http://myserver.ru/news/main.php?year=2011&count=10
Ответ веб-сервера
(HTML-текст, изображение, CSS, JavaScript, SWF и т.п.)
Слайд 3Запросы HTTP
GET
Параметры отображаются в адресной строке
URL?user=17&page=news&id=134
Используется для получения ресурса, без
изменения
POST
Используется для передачи пользовательских данных (например, отправки форм, загрузки на
сервер файлов)
Слайд 4Веб-сервер
Веб-сервер — это сервер, принимающий HTTP-запросы от клиентов, обычно веб-браузеров, и
выдающий им HTTP-ответы, обычно вместе с HTML-страницей, изображением, файлом, медиа-потоком
или другими данными
Примеры: Apache, IIS, nginx, lighttpd
Слайд 5Apache
Кроссплатформенность
Поддержка многих языков программирования
Работа с СУБД, сессиями, аутентификацией, сообщениями об
ошибках
Поддержка IPv6
Модульность
Слайд 6PHP
автоматическое извлечение POST и GET-параметров, а также переменных окружения веб-сервера
в предопределённые массивы;
взаимодействие с большим количеством различных систем управления
базами данных (MySQL, MySQLi, SQLite, PostgreSQL, Oracle (OCI8), Oracle, Microsoft SQL Server, Sybase, ODBC, mSQL, IBM DB2, Cloudscape и Apache Derby, Informix, Ovrimos SQL, Lotus Notes, DB++, DBM, dBase, DBX, FrontBase, FilePro, Ingres II, SESAM, Firebird / InterBase, Paradox File Access, MaxDB, Интерфейс PDO);
автоматизированная отправка HTTP-заголовков;
работа с HTTP-авторизацией;
работа с cookies и сессиями;
работа с локальными и удалёнными файлами, сокетами;
обработка файлов, загружаемых на сервер.
Слайд 7Примеры PHP-страниц
Пример 1
страницу
?> //закрывающий тег
Пример 2
Сейчас год
Слайд 8Комментарии
КОД //однострочный комментарий
КОД
/*
многострочный
комментарий
*/
КОД
Слайд 9Типы данных
Скалярные типы данных
Двоичные данные (boolean) (true, false)
Целые числа (Integer) (1,
-325, 5,…)
Числа с плавающей точкой (Float) (-0.001, 8.2, 436.4,…)
Строки (String) (“Hello,
world!”, “Мама мыла раму”,…)
Смешанные типы данных
Массивы (Array)
Объекты (Object)
Специальные типы данных
Ресурсы (Resource)
Пустой тип (NULL)
Слайд 10Переменные
Пример 1
//Google
$f = 8.9923;
echo $f; //8.9923
$b = true;
echo $b; //1
$i =
$s;
echo $i; //Google
?>
Слайд 11Приведение типов
(int), (integer) - приведение к целому числу
(bool), (boolean) -
приведение к булеву типу
(float), (double), (real) - приведение к числу
с плавающей точкой (float)
(string) - приведение к строке
(array) - приведение к массиву
(object) - приведение к объекту
Пример
$i = 10; // $i это целое число
$b = (boolean) $i; // $b это булев тип
Слайд 12Преобразование в boolean
К значению false приводятся:
сам булев FALSE
целое 0 (ноль)
число с плавающей точкой 0.0 (ноль)
пустая строка и строка
"0"
массив с нулевыми элементами
объект с нулевыми переменными-членами
специальный тип NULL (включая неустановленные переменные)
Все остальные значения преобразуются к true!
Слайд 13Преобразование строк в числа
+ "10.2 kg"; //$f это float(14.2)
$f = "10.0 kg" + 1; //$f это float (11)
$f = "10.0 kg" + 1.0; //$f это float (11)
?>
Слайд 14Операции со строками
// One Two Three
echo ‘$b Three’; // $b Three
$s =
“One” . “Two” . “Three”;// OneTwoThree
$s .= “Four”;
echo $s; // OneTwoThreeFour
?>
Слайд 15Массивы
$a = array(); // создание пустого массива
$b = array(1, 6,
43.56, 3, 2, 5, “Hello”);
$a[] = 5; //добавление элемента в
конец массива
$b[3] = 4; // замена 3-го элемента массива
$c = array(0=>34,
3=>323525,
4=>26,
17=>23456);
$d = array(“John”=>array(),
“Mary”=>12,
6=>”wd”,
1=>2);
Слайд 16Работа с массивами
0; $i < count($a); $i++)
{
echo $i . “=” . $a[$i]
. “
”;
}
foreach($a as $value)
{
echo $value . ”
”;
}
foreach($a as $key=>$value)
{
echo $key . “=“ . $value . ”
”;
}
?>
= “Ivan”)
{
echo $name;
}
$sum = sum(4, 7); //$sum == 11
print_hello(); //Hello!
print_name(“Vasya”);
//Vasya
print_name(); //Ivan
?>
Слайд 18Переменные переменных
$$animal; //4
$animal = “spider”;
echo $$animal; //8
$$animal = 7;
echo $spider; //7
?>
Слайд 19Глобальные массивы
$_GET
$_POST
$_SESSION
$_COOKIE
$_SERVER
$_ENV
$_REQUEST
$_FILES
Слайд 20Массив $_SERVER
$_SERVER["OS"] – операционная система
$_SERVER["SERVER_SOFTWARE"] – веб-сервер
$_SERVER["SERVER_NAME"] – имя сервера
$_SERVER["SERVER_ADDR"]
– адрес сервера
$_SERVER["SERVER_PORT"] – порт сервера
$_SERVER["REMOTE_ADDR"] – адрес клиента
$_SERVER["DOCUMENT_ROOT"] –
путь к документам на сервере
$_SERVER["SCRIPT_FILENAME"] - полный путь к текущему скрипту
$_SERVER["PHP_SELF"] - имя текущего скрипта
Слайд 21Пример работы с формами
form.php
type=“submit”>
Слайд 22Пример работы с формами - 2
result.php
. “
”;
}
else echo “Hello, somebody!
”;
if(isset($_POST[“password”]))
{
if($_POST[“password”] == “123456”) echo “Logged in!”;
}
else
echo “Wrong password!”;
?>
Слайд 23Работа с сессиями
“You entered ” . $dif . “ s ago”;
}
else
{
$_SESSION[“enter_time”] =
time();
echo “Entered now”;
}
?>
Слайд 24Работа с файлами
fopen($filename, $flag);
r – открытие файла только для чтения.
r+ - открытие файла одновременно на чтение и запись.
w
– создание нового пустого файла. Если на момент вызова уже существует такой файл, то он уничтожается.
w+ - аналогичен r+, только если на момент вызова файл существует, его содержимое удаляется.
a – открывает существующий файл в режиме записи, при этом указатель сдвигается на последний байт файла (на конец файла).
a+ - открывает файл в режиме чтения и записи при этом указатель сдвигается на последний байт файла (на конец файла). Содержимое файла не удаляется.
Слайд 25Работа с файлами - 2
Дозапись в конец файла
"a"); // Открываем файл в режиме записи
$mytext = “Text\r\n";
// Исходная строка
$test = fwrite($fp, $mytext); // Запись в файл
if ($test) echo “Success!”;
else echo “Error”;
fclose($fp); //Закрытие файла
?>
Слайд 26Работа с файлами - 3
$file_array = file("counter.txt");
// Построчный вывод содержимого файла
foreach($file_array as $s)
{
echo
$s . “
”;
}
?>
Слайд 27Работа с файлами - 4
file_exists($name) – проверка существования файла
filesize($name) –
вычисление размера файла в байтах
file_put_contents($name, $text) – запись данных в
файл
file_get_contents($name) – получение данных из файла
Слайд 28Подключение скриптов
include, require – загрузка и выполнение скрипта
include_once, require_once –
загрузка и выполнение скрипта, без возможности повторной загрузки и выполнения
Слайд 29Работа с СУБД MySQL
Соединение с СУБД:
mysql_connect ($hostname, $user, $password);
Соединение с
базой данных
$hostname – имя хоста, например, 192.168.2.1:3360, localhost или 81.12.0.54;
$user
– имя пользователя в MySQL;
$password – пароль пользователя в MySQL.
Возвращается целочисленный идентификатор соединения.
Закрытие соединения - mysql_close()
Постоянное соединение с СУБД:
mysql_pconnect ($hostname, $user, $password);
Слайд 30Пример
// Попытка установить соединение с MySQL
if (!mysql_connect(“localhost”, “root”, “mypass”))
{
echo
"Ошибка подключения";
exit;
}
// Соединились, теперь выбираем базу данных
mysql_select_db(“shop”);
Слайд 31Обработка ошибок
Получение номера последней ошибки
mysql_errno($id)
Получение сообщения о последней ошибке
mysql_error($id)
Слайд 32Обработка результатов запроса
//Получение результата выполнения запроса
$q = mysql_query(“SELECT * FROM
mytable”);
//количество возвращенных строк
$count = mysql_num_rows($q);
for ($c = 0; $c
< $count; $c++)
{
echo “Строка №” . $c . “
”;
//получение одной строки из результата
$f = mysql_fetch_array($q);
foreach($f as $k=>$v)
{
echo $k . “=” . $v . “
”;
}
}
mysql_free_result($q); //освобождение памяти
Слайд 33Полезные ссылки
http://www.php.net
http://www.php.su
http://www.php.ru
http://www.w3schools.com/php/default.asp
PHP 5 В Подлиннике - Д. Котеров, А. Костарев
PHP
и MySQL. Библия программиста –
С. Суэринг, Т. Конверс, Д.
Парк