/img> | ![]() |
![]() |
![]() |
| Главная | Новости | Статьи | Провайдеры | Форум | Контакты | Ссылки |
![]() |
![]() |
CGIУстановка Apache, PHP, XML, MySQL под Windows Оптимизация Apache, PHP, PostgreSQL Наиболее популярные директивы .htaccess Преобразование http-ссылок с помощью Apache Настройка системы денежных расчетов CGI как средство расширения возможностей www-технологии Жемчужина PERL: мощь C++ и простота Basic |
Common Gateway Interface - средство расширения возможностей World Wide Web технологииГлавное назначение Common Gateway Interface - обеспечение единообразного потока данных между сервером и прикладной программой, которая запускается из-под сервера CGI-скрипт - программа написанная в соответствии со спецификацией Common Gateway Interface. CGI-скрипты могут быть написаны на любом языке программирования (C, C++, PASCAL, FORTRAN и т. п.) или командном языке (shell, cshell, командный язык MS-DOS, Perl и т. п.). Скрипт может быть написан даже на языке редактора EMAC в системах Unix Шлюз - это CGI-скрипт, который используется для обмена данными с другими информационными ресурсами Internet или приложениями-демонами. Обычная CGI- программа запускается сервером HTTP для выполнения некоторой работы, возвращает результаты серверу и завершает свое выполнение Механизмы обмена данными
Список переменных окружения
Применение CGI-скриптов
Примеры SHELL-скриптов#!/bin/sh echo Content-type: text/plain echo echo This is the result of script execution. #The end of script #!/bin/sh echo Content-type: text/plain echo echo $REQUEST_METHOD echo $QUERY_STRING echo $CONTENT_TYPE echo $CONTENT_LENGTH #The end of script. #!/bin/sh echo Content-type: text/plain echo finger paul@polyn.kiae.su #The end of script. Пример С-программы#include <stdlib.h>; #include <sys/types.h>; main() { long i,n,uid; char input_ch[1024]; char *env; env = getenv("CONTENT_LENGTH"); /* Here we recieve a length */ sscanf(env,"%d",&n); /* of input stream and form */ for(i=0;i<n;i++) /* command line */ { input_ch[i] = getchar(); } input_ch[i] = '\000'; printf("Content-type: text/html\n\n"); /* First message of a CGI Programme */ /* This message must be a first one */ /* in output sream. */ printf("<TITLE>C-cgi script.(example#1)</TITLE>\n"); printf("<H3><I>Russian Research Center \"Kurchatov Institute\"<I></H3>\n"); c_uid = -1; sscanf(input_ch,"uid=%ld",&uid); /* Transform input data */ printf("Input Number:%ld.<BR><HR>",uid); exit(0); } Доступ к базе данных под управлением Ingres
Примеры скриптов#!/bin/sh echo Content-type: text/plain echo ingres polyn < query #The end of script #!/bin/sh echo Content-type: text/plain echo helpr polyn #The end of script #!/bin/sh echo Content-type: text/html echo echo '< PRE> ' helpr polyn situat echo '< /PRE> ' #The end of script #!/bin/sh echo Content-type: text/html echo echo '< PRE> ' echo $QUERY_STRING | tr "+" " " | ingres polyn echo '< /PRE> ' #The end of script #!/bin/sh echo Content-type: text/html echo echo '< PRE> ' echo $QUERY_STRING | sed -f symbols | ingres polyn | tr "\007" "*" | head 100 echo '< /PRE> ' #The end of script Пример интерфейсной формы
Результат выполнения скрипта
Организация стека графических ссылокСкрипт imagemap <A href="http://polyn.net.kiae.su/cgi-bin/imagemap/russia"> <img SRC="http://demin.polyn.kiae.su/dss/russia.gif" ISMAP> </A> # метка : адрес файла описания картинки russia : /usr/local/etc/httpd/cgi-bin/maps/russia.map brussia : /usr/local/etc/httpd/cgi-bin/maps/brussia.map .... #описание прямоугольника rect 10 20 100 200 circle 50 50 60 60 poly 10 10 20 20 20 10 Источник: http://www.citforum.ru/ |
![]() | ![]() |