Студопедия КАТЕГОРИИ: АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Формирование возвращаемого документа ⇐ ПредыдущаяСтр 2 из 2
Вне зависимости от метода передачи данных, GET или POST, результат своей работы GCI-скрипт должен направить в стандартный поток вывода. При формировании возвращаемого документа GCI-скрипт должен предварить документ хотя бы одним заголовком ответа сервера, определяющим media-тип возвращаемого документа, заголовком Content-type. Заголовок должен быть отделен от собственно возвращаемого документа пустой строкой, как того требует структура ответа сервера. Чаще всего GCI-скрипт используется для создания html-документов на основе данных, полученных от клиента. В этом случае заголовок ответа сервера должен определять media-тип возвращаемого документа как текст в формате html (Content-type: text/html), за которым необходимо вывести пустую строку, отделяющую заголовок от html-документа. Web-сервер возвращает результат, сформированный GCI-скриптом, клиенту, возможно дополняя его статусной строкой и другими заголовками ответа сервера. GCI-скрипт может сформировать полный ответ (со всеми заголовками ответа сервера). В этом случае web-сервер ничего не изменяет в результате работы GCI-скрипта, только пересылает его клиенту «как есть».
Пример: на стороне клиента в поля формы вносятся имя и возраст, в зависимости от возраста возвращаются разные приветствия (рассматриваются два варианта: для методов GET и POST). Метод GET HTML-документ, содержащий форму: <html> <form action=http://localhost/cgi/hello.exe method=get> <p>ИМЯ<input type=text name=name> <p>ВОЗРАСТ<input type=text name=age> <p><input type=submit> </form>
CGI-приложение (файл hello.cpp) void main() { int age; char *name=new char[256]; char *query_string=new char[256]; query_string=getenv("QUERY_STRING");
//query_string=”name=Maria&age=18” //из строки извлекаются подстроки “Maria” и “18” //и присваиваются переменным name и age соответственно
cout<<”Content-type: text/html\n\n”; cout<<”<html>”; if(age<=16) cout<<”Привет, ”; if(age>16) cout<<”Здравствуйте, ”; cout<<name<<”</html>”; }
Метод POST HTML-документ, содержащий форму: <html> <form action=http://localhost/cgi/hello.exe method=post> <p>ИМЯ<input type=text name=name> <p>ВОЗРАСТ<input type=text name=age> <p><input type=submit> </form>
CGI-приложение (файл hello.cpp) void main() { int age; char *name=new char[256]; int length=atoi(getenv("CONTENT_LENGTH")); char * string=new char[length+1]; cin≫string;
//string=”name=Maria&age=18” //из строки извлекаются подстроки “Maria” и “18” //и присваиваются переменным name и age соответственно
cout<<”Content-type: text/html\n\n”; cout<<”<html>”; if(age<=16) cout<<”Привет, ”; if(age>16) cout<<”Здравствуйте, ”; cout<<name<<”</html>”; }
Установка интерпретатора PHP как модуля web-сервера Apache Интерпретатор PHP может быть установлен для работы в двух режимах: как модуль web-сервера Apache или как обработчик CGI-скриптов. Для установки интерпретатора PHP как модуля web-сервера Apache достаточно распаковать zip-архив с дистрибутивом, например, на диск С:\php и создать копию файла php.ini-production с именем php.ini в той же папке. В файле php.ini можно выполнить настройки путем изменения параметров соответствующих директив. Директива error_reporting задает уровень протоколирования ошибки. Параметр директивы может быть либо числом, либо именованной константой. Параметр E_ALL позволяет отображать предупреждения и ошибки всех уровней. error_reporting = E_ALL
Директива extension позволяет загрузить необходимые динамические расширения. extension=php_gd2.dll ;для работы с графической библиотекой extension=php_mysql.dll ;для работы с СУБД MySQL
Директива display_errors позволяет выводить сообщения об ошибках на экран вместе с остальным выводом, либо скрывать сообщения об ошибках от пользователя. Для отладки скриптов рекомендуется использовать директиву display_errors с параметром On. display_errors = On
После отладки скриптов предупреждения и сообщения об ошибках можно скрывать от пользователя, выводя их в файл, расположенный на стороне сервера. Директива error_log задает расположение файла с предупреждениями и сообщениями об ошибках. display_errors = Off error_log = с:\php\phperror.log
Директива short_open_tag определяет сокращенную или полную форму записи тега для вставки php-скрипта в html-разметку. short_open_tag = Off ;<?php … ?> и <script> … </script> или short_open_tag = On ;дополнительно <? … ?>
Для настройки web-сервера Apache в основной конфигурационный файл httpd.conf следует добавить директивы LoadModule, AddHandler и PHPIniDir. LoadModule php5_module “c:/php/php5apache2_2.dll” AddHandler application/x-httpd-php .php PHPIniDir “c:/php”
Установка интерпретатора PHP как обработчика CGI-скриптов Для установки интерпретатора PHP как обработчика CGI-скриптов настройки файла php.ini выполняются также, как было описано выше, для настройки web-сервера Apache в основной конфигурационный файл httpd.conf следует добавить директивы ScriptAlias, AddType и Action. ScriptAlias /php/ “c:/php/” AddType application/x-httpd-php .php Action application/x-httpd-php “/php/php-cgi.exe”
|
||
Последнее изменение этой страницы: 2018-04-12; просмотров: 508. stydopedya.ru не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда... |