4340

Программирование для Web, CGI (Common Gateway Interface)

Реферат

Информатика, кибернетика и программирование

Программированиедля Web, CGI (Common Gateway Interface) CGI - это спецификация обмена данными между прикладной программой, выполняемой по запросу пользователя, и HTTP-сервером, который данную программу запускает. Часть информации заголовка HTT...

Русский

2012-11-16

464 KB

2 чел.

Программирование для Web, CGI (Common Gateway Interface)

CGI - это спецификация обмена данными между прикладной программой, выполняемой по запросу пользователя, и HTTP-сервером, который данную программу запускает.

Часть информации заголовка HTTP-запроса преобразует в переменные окружения, которые доступны для анализа CGI-скриптом. Если запрос имеет тело, то оно становится доступным скрипту через поток стандартного ввода.

CGI-скриптом называют программу, написанную на любом языке программирования или командном языке, которая осуществляет обмен данными с HTTP-сервером в соответствии со спецификацией Common Gateway Interface.

Метод GET:

GET /cgi-bin/temp/a.cgi?a=1&b=2 HTTP/1.1

Referer: http://tpu.ru/

User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)

Host: acs.cctpu.edu.ru

<пустая строка>

Переменные окружения:

REQUEST_METHOD = GET

QUERY_STRING = a=1&b=2

HTTP_REFERER = http://tpu.ru/

HTTP_USER_AGENT = Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)

REMOTE_ADDR = 195.208.176.1

Стандартный поток ввода: ничего

Метод POST:

POST /cgi-bin/temp/a.cgi?a=1&b=2 HTTP/1.1

Referer: http://tpu.ru/

User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)

Host: acs.cctpu.edu.ru

Content-Type: application/x-www-form-urlencoded

Content-Length: 7

<пустая строка>

PostData

Переменные окружения:

REQUEST_METHOD = POST

QUERY_STRING = a=1&b=2

CONTENT_TYPE = application/x-www-form-urlencoded

CONTENT_LENGTH = 7

HTTP_REFERER = http://tpu.ru/

HTTP_USER_AGENT = Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)

REMOTE_ADDR = 195.208.176.1

Стандартный поток ввода: PostData (7 байт)

Язык программирования PHP

PHP – PHP: Hypertext Preprocessor – «Гипертекстовый препроцессор» - язык сценариев общего назначения, предназначенный в первую очередь для быстрого создания динамически генерируемых страниц для Web.

Преимущества:

1)PHP может использоваться на всех крупных платформах.

2)Для большинства существующих Web-серверов существуют модули PHP.

3)Встроенная поддержка наиболее популярных СУБД.

4)PHP – более безопасный язык для написания CGI-приложений по сравнению с Perl и C.

5)Встроенная поддержка вывода сообщений об ошибках и предупреждений напрямую в браузер.

Скрипт:

<html><head><title>Заголовок</title></head>

<body>My name is <?php

$a='PHP'; //это комментарий в тексте скрипта

print $a; /* это тоже комментарий*/ ?></body>

</html>

Результат:

<html><head><title>Заголовок</title></head>

<body>My name is PHP</body>

</html>

Основные типы: логический,

целые числа,

вещественные числа,

строки, массивы.

Тип переменной является контекстно-зависимым.

Проверка типа переменной:

$a=10;

if (is_int($a)) { print "Целое число"; }

$a=10.1; if (is_float($a)) { print "Вещественное число"; }

$a='str'; if (is_string($a)) { print "Строчка"; }

$a=array(1,2); if (is_array($a)) { print "Массив"; }

$a="123.3"; if (is_numeric($a)) { print "Число"; }

$a=123.3; if (is_numeric($a)) { print "Число"; }

Оператор условия:

if (is_string($a)) {  print "Строчка"; $res=$a;  }

elseif ($a==$b && ($c>=$d || $f<$x)) { print $a; }

else { print $b; }

Операции со строками

Объединение строк:

$a='First'; $b='Second'; $c=$a.$b; print $c; //на экране FirstSecond

Нахождение подстроки:

$s2 = substr("abcdef", 1, 3); //в $s2 записано "bcd"

//параметры: исходная строка, начальный символ (счёт с 0), количество символов

$s2 = substr("abcdef", 2); //в $s2 записано "cdef" - до конца строки

$s2 = substr("abcdef", -3); //в $s2 записано "def" - отчёт от конца строки

$s2 = substr("abcdef", 1, -1); //в $s2 записано "bcde" - со второго символа до предпоследнего

Кавычки: " или '

$a='str';

$b='___ $a ___';  // $b содержит ___ $a ___

$c="___ $a ___"; // $c содержит ___ str ___

Определение длины строки:  print length($str);

Операции с массивами

Добавление нового элемента:

$a=array();

$a[]=1; //первый элемент с индексом 0

$a[10]=2;

$a[]=3; //элемент с индексом 11

print $a[11]; //на экране 3

Перебор всех элементов:

foreach ($a as $v) { print $v. '-'; } //на экране 1-2-3-

$a=array(1,2,3);

for ($i=0; $i<count($a); $i++) { print $a[$i].'-'; } //на экране 1-2-3-

Операции с файлами

Чтение текстового файла в массив:

$ar=file('data.txt');

$fp=fopen('data.txt', 'r');

while (!feof($fp)) {  $ar[]=fgets($fp);  }

fclose($fp);

Запись массива в текстовый файл:

$fp=fopen('data.txt', 'w');

foreach ($ar as $v) { fputs($fp, $v); }

fclose($fp);

Обработка форм

Переменные окружения:

$_ENV['REMOTE_ADDR']

$_ENV['HTTP_USER_AGENT']

Данные, переданные из формы методом GET:

$_GET['user']

$_GET['fieldname1']

Проверка существования переменной:

if (isset($_GET['fieldname1'])) { print $_GET['fieldname1']; }

Данные, переданные из формы методом POST:

$_POST['user']

$_POST['fieldname1']


 

А также другие работы, которые могут Вас заинтересовать

40399. Основные этапы истории методики русского языка как науки 39.5 KB
  Буслаева О преподавании отечественного языка 1844. Ушинский 1824 1870 который создал методику в полном ее объеме обосновал ее теоретически написал учебники для школы Родное слово для I II и III годов обучения Детский мир а также пособия для учителей: О первоначальном преподавании русского языка. Он раскрыл роль родного языка в воспитании человека в формировании его личности в его мыслительном развитии.
40400. Методы обучения грамоте 36 KB
  Вторая ступень состояла в обучении чтению слогов: сначала двухбуквенных потом трехбуквенных и далее вплоть до пяти и шестибуквенных. Чтение слогов проходило так: сначала нужно было назвать первую букву слога допустим буки затем присоединить к ней название второй буквы аз. Выучивание слогов сменялось новой третьей ступенью обучения по буквослагательному методу обучением чтению отдельных слов. выбранном для чтения слове надо было выделить первый слог и буква за буквой называть каждую из них в слоге а затем произнести весь...
40401. Методика работы над элементами синтаксиса 48 KB
  Из данных форм образуются словосочетания и предложения которые могут соединяться в сложные предложения и образовывать максимальную синтаксическую единицу текст. Синтаксис как наука это взаимодействие нескольких направлений лингвистической мысли например предложение как синтаксическая единица рассматривается с точки зрения: Теории членов предложения предполагает деление текста на составляющие словосочетания и слова Теории актуального членения рассматривает предложение как часть более сложной синтаксической единицы текста а...
40402. Гражданская война в США 78.84 KB
  Первый период войны апрель 1861 апрель 1863 Сражения 1861 года Боевые действия начались 12 апреля 1861 года сражением за форт Самтер в бухте Чарлстон который после 34часового обстрела был вынужден сдаться. Первое серьёзное сражение произошло в Вирджинии у железнодорожной станции Манассас 21 июля 1861 года когда плохо обученные войска северян перейдя ручей БуллРан атаковали южан но были вынуждены начать отступление превратившееся в бегство. В ходе этого самого кровавого дня войны известного как Сражение при Энтитеме обе стороны...
40403. Эпоха Бурбонов (XVIII век) 30.32 KB
  В 1609 году начинается выселение из Испании морисков однако доходы от конфискации их имущества не компенсировали последующий упадок торговли и запустение многих городов во главе с Валенсией. Вступление в войну католической Франции лишило конфликт религиозной почвы и привело к катастрофическим последствиям для Испании. На долгие десятилетия политическую жизнь Испании начали определять интересы её северного соседа. Экономическая и политическая слабость привели Испанию к подписанию крайне невыгодного договора в СанИльдефонсо 1796 который...
40404. Италия во времена испанского господства и возрастающего влияния Франции (1559—1700) 141.87 KB
  Наибольшее значение для будущего имело восстановление Савойи и Пьемонта которые прежде всего должны были служить испанскому господству в верхней Италии оплотом против Франции. Незадолго до того прекратило своё существование ещё одно из небольших владений в Италии Урбино которое в 1623 году слилось с Церковной областью. Франция уже ранее воздвигла на северной границе Италии преграду дальнейшему развитию испанской власти тем что воспрепятствовала соединению габсбургских земель в Граубюндене и Вальтеллине. Она пыталась утвердиться и в...
40405. Конституция США 95.53 KB
  Состоит из семи статей за время действия Конституции были приняты двадцать семь поправок которые являются её неотъемлемой частью. В основе Конституции США лежит принцип разделения властей между законодательной конгресс исполнительной президент и судебной верховный суди нижестоящие суды ветвями. Хотя первоначальной целью Конвента был именно пересмотр Статей Конфедерации и вопрос о выработке нового документа не ставился постепенно делегаты пришли к заключению о необходимости создания новой Конституции которая бы утвердила...
40406. Война Первой коалиции 193.28 KB
  союзные войска в общем до 250 тыс. Французская регулярная армия не превышала тогда 125 тыс. Он издал грозную прокламацию которая имела целью устрашить французов но произвела обратное действие: её вызывающий тон возбудил сильнейшее негодование; всякий кто мог взялся за оружие и менее чем через 2 месяца численность французских войск превзошла уже 400 тыс. капитулировал имея в распоряжении 18 тыс.
40407. Предыстория объединения 77.04 KB
  под эгидой Пруссии был заключенТаможенный союз куда вошли Пруссия Бавария Саксония и другие государства. Королевство Пруссия Ядром Пруссии стало Маркграфство Бранденбург которое образовалось в XII веке на славянских землях бодричей и лютичей между Эльбой и Одером в результате экспансии немецких рыцарей на восток. В 1618 году в результате династического брака сына маркграфа Бранденбурга и дочери герцога Пруссии из другой ветви Гогенцоллернов образовалось наследственное владение БранденбургПруссия. ВТридцатилетней войне относительно...