PHP: от средства создания персональных веб-страниц (Personal Home Page) до препроцессора (HypertextPreProceccor) Начало создания История PHP • 1995 - PHP/FI (Personal Home Page / Forms Interpreter – персональная домашняя страница/ интерпретатор форм). • 1997 - PHP – PHP/FI 2.0 • 1998 - PHP 3.0 - Hypertext Preprocessor • 1999 - PHP 4.0 «Zend Engine» • н\время - PHP 5.0 Возможности PHP • Создание скриптов ), которые исполняются на стороне сервера • Создание скриптов, выполняющихся в командной строке • Создание GUI-приложений Стандартный интерфейс CGI • CGI-программы – шлюзы для взаимодействия с СУБД, другими системами и выдачи динамической информации • В реальном масштабе времени возвращает результат обработки запроса на экран пользователя • Программа-шлюз может быть создана на языках: C/C++, Fortran, Perl, TCL, Unix Schell, Visual Basic, Apple Script • Хранится в директории cgi-bin WWW-сервера Клиент (Браузер) 1. Клиент посылает запрос, URL которого указывает на специальную CGI-программу 7. Сервер отправляет клиенту полученный результат Web-Сервер 2. Для обработки запроса сервер запускает CGI-программу, передавая её параметры от клиента Базы данных, обработка форм, системы поиска, слежение за динамическими процессами на сервере, работа с электронной почтой и сетью 6. Результат своей работы CGIпрограмма возвращает серверу 3. CGI-программа считывает даные, переданные сервером, и приступает к их обработке CGI-программа Взаимодействие «клиента-сервер» при вызове CGI-обработчика 4. CGI-программа обрабатывает данные (например, производит поиск в базе данных) 5. CGI-программа выдает результат. Это может быть как сгенерированный документ, так и перенаправление к другому URL. Почему PHP? 1. Прост в изучении 2. Поддерживается почти на всех известных платформах 3. Два самых популярных подхода к программированию – объектный и процедурный 4. И многое другое Взаимодействие с другими языками: • Поддержка объектов Java и возможность их использования в качестве объектов PHP. • Расширение CORBA для доступа к удаленным объектам • Наследование механизмов работы с текстом из Perl&UNIX • Электронная коммерция - функции платежей (Cybercash, CyberMUT, VeriSign Payflow Pro и CCVS) Скриптовые языки VBScript, JavaScript, CGI Клиент (браузер) HTML-страница Программа обработчик Форма ввода Форма ввода JavaScript VBScript CGI JSP ASP Web-Сервер Интерпретирующие среды Программа обработчик Различные языки программирования (java,C,Basic, Pascal,perl, python) Файловай система Mysql MS SQL Oracle PostgreSQL FAT NTFS ext2 NFS Java Virtual Machine .NET Framework Common Language runtime Модули База данных Perl-module ActiveX компаненты Java servlets Необходимый инструментарий Технология клиент-сервер 1. Веб-сервер 2. ПА - интерпретатор PHP – веббраузер 3. PHP 4. СУБД (MySQL) Установка веб-сервера Apache под Windows XP Варианты: • http://www.apache.org • С СДРОМа преподавателя • Найти дистрибутив в локальной сети класса Файл: apache_1.3.29-win3x86-no_src.exe Проверка правильности установки командой в окне браузера: http://localhost/. Файл настройки сервера mime.types ServerRoot: • c:\Program Files\Apache Group\Apache\htdocs или • c:\Program Files\Apache Group\Apache\users\ UserDir: • c:\users\ • Доступ к файлу: • http://localhost/test.html или http://localhost/~user/test.html Файлы конфигурации сервера (~Apache Group\Apache2\conf) httpd.conf DocumenRoot: • F:\site\main\html ServerRoot: • c:\Program Files\Apache Group\Apache\htdocs или • c:\Program Files\Apache Group\Apache\users\ UserDir: • c:\users\ • Доступ к файлу: • http://localhost/test.html или http://localhost/~user/test.html • mime.types text/html html htm shtml shtm php phtml Установка MySQL Работа с MySQL • • • • • • • • • • Запуск программы: c:\mysql\bin\mysql Появится mysql >___ - ожидание ввода команды Создание БД: create database site_iu6; Создание таблицы use site_iu6; create table tutors (options); Просмотр результата: show databases; Просмотр результата: show tables; Просмотр результата: describe table tutors; Проверьте результат (show databases) Работа с таблицами: use site_iu6; create table tutors (options); describe tutors; alter … drop… Заполнение БД (INSERT, SELECT, DELETE, UPDATE, SHOW) Задание на лабораторную работу • Установить MySQL, отредактировать файл my.ini или my.cnf • Запустить сервер БД (c:\mysql\bin\mysql) • Создать БД кафедры ИУ6 (create database [if not exests] site_iu6; • Проверьте результат (show databases) • Создайте таблицы: auth; count; guest; history; course… • Заполнение таблиц БД (INSERT, SELECT, DELETE, UPDATE, SHOW) Установка PHP под Windows Варианты: • http://www.php.net • С СДРОМа преподавателя • Найти дистрибутив в локальной сети класса Проверка правильности установки PHP: Два вида установки PHP CGI-скрипт (php.exe) httpd.conf: ScriptAlias /php/ "c:/php/" AddType application/xhttpd-php .php .phtml Action application/x-httpdphp "/php/php.exe" Набор SAPI-модулей, используемых сервером (php4isapi.dll) httpd.conf: LoadModule php4_module c:/php/sapi/php4apache.dll AddType application/x-httpdphp .php .phtml AddModule mod_php4.c Два вида установки PHP CGI-скрипт Набор SAPI-модулей, используемых сервером (php4isapi.dll) (php.exe) httpd.conf: ScriptAlias /php/ "c:/php/" AddType application/xhttpd-php .php .phtml Action application/x-httpdphp "/php/php.exe" httpd.conf: LoadModule php4_module c:/php/sapi/php4apache.dll AddType application/x-httpdphp .php .phtml AddModule mod_php4.c • c:\abc_php\ Настройка PHP под Windows Редактирование файла: • с:\windows\php.ini doc_root doc_root = "c:\Program Files\Apache Group\Apache\htdocs" user_dir user_dir = "c:\users" extension_dir extension_dir = "c:\php\extensions" Настройка PHP под Windows Редактирование файла: • с:\windows\php.ini Расширения: 'extension=php_*.dll' MS SQL • extension=php_mssql.dll Дополнительные библиотеки • c:\php\dlls Проверка настройки сервера и PHP 1. Перезапустить сервер 2. Создать тестовый файл (1.php): <?php echo«<h1>Привет всем!</h1>"; ?> 3. Поместить файл в директорию c:\users\your_name 4. Запустить файл из браузера, набрав: http://localhost/~your_name/1.php Дистрибутив Денвер Для начинающих программистов, желающих научиться работать с PHP • http://dklab.ru/chicken/web/ Первая PHP-программа <html> <head> <title>Пример</title> </head> <body> <?php echo "<p>Привет, я – скрипт PHP!</p>"; ?> </body> </html> Первая PHP-программа <html> <head> <title>Пример</title> </head> <body> <?php echo "<p>Привет, я – скрипт PHP!</p>"; ?> </body> </html> <html> <head> <title>Пример</title> </head> <body> <p>Привет, я – скрипт PHP! </p> </body> </html> PHP-скрипты в HTML-коде: 1. <? echo "Это простейшая инструкция для обработки PHP"; ?> 2. <script language="php"> echo "Некоторые редакторы (FrontPage) предпочитают делать так"; </script> 3. <% echo "Можно использовать теги в стиле ASP "; %> Расположение скриптов php • Там, где разрешен доступ через www, (например, там же, где лежит домашняя страничка) • Если php-файл лежит на локальной машине, то его можно обработать с помощью интерпретатора командной строки Методы подтверждения и посылки формы • Метод GET • Метод POST SSI - Server Side Includes • специальное расширение: *.shtml или *.shtm <!- - #command param="value" --> где # - признак начала SSI-вставки; command - SSI-команда; param - параметры SSI-команды. SSI-команды <!- - #include virtual="/path/file.ssi" --> где include - команда вставки; virtual - параметр, определяющий, как трактовать путь - как абсолютный (file) или как относительный (virtual); "/path/file.ssi" - путь к включаемому файлу