Способы создания CGI-сценариев — КиберПедия 

Архитектура электронного правительства: Единая архитектура – это методологический подход при создании системы управления государства, который строится...

Семя – орган полового размножения и расселения растений: наружи у семян имеется плотный покров – кожура...

Способы создания CGI-сценариев

2017-11-22 329
Способы создания CGI-сценариев 0.00 из 5.00 0 оценок
Заказать работу

CGl -программы очень часто называют CGI -сценариями или просто сценариями из-за того, что они написаны, как правило, на каком-нибудь языке-интерпретаторе (Perl, Bash и др.). Однако никто не мешает написать обыкновенную CGI -программу, например, на языке С. В этом случае у вас будет исполнимый файл (ехе -файл в Windows), который будет обрабатывать данные пользователя.

Попробуем создать небольшой CGI -сценарий на языке командного интерпретатора COMMAND.СОМ. По сути, это будет обыкновенный ВАТ-файл, который будет запущен системой Файл test.bat @echo off echo Content-type: text/html echo. echo. echo Hello!

Файл test.bat нужно поместить в каталог cgi-bin вашего Web -сервера (Web -сервер может запускать программы, находящиеся только в этом каталоге).

Рассмотрим, что делает данное приложение. Сначала наш CGI -сценарий сообщает серверу формат передаваемых данных: Content-type: text/ html. Затем мы выводим два символа перевода строки (LF или \n) — команда «echo.» сообщает серверу, что мы больше не будем выводить никаких заголовков — и приступаем к выводу данных.

Вы, наверное, обратили внимание на расширение файла. bat. Это небольшой сценарий, обработкой которого занимается командный интерпретатор command.com.

В Linux нет понятия «расширение файла». Поэтому вы легко можете написать следующий сценарий на языке Bash (Bourne Again Shell): #!/bin/bash echo Hello!

Затем данный файл (test.gif) нужно поместить в каталог CGI и сделать его исполнимым: chmod +x test.gif

Несмотря на то, что мы назвали файл test.gif, система запустит его, и в окне браузера вы увидите строку Hello! Точно таким же образом поступают программы, выводящие изображения: сначала они выводят формат (например, gif), а затем — содержимое файла в формате GIF.

Благодаря тому, что в Linux отсутствует понятие «расширение файла», мы можем достичь еще большего уровня прозрачности. В Windows, чтобы запустить программу, она должна иметь расширение. com,.exe,.bat. Понятное дело, что пользователь догадается, что он имеет дело с программой. В Linux запуск программы происходит совершенно незаметно для пользователя.

Методы передачи данных GET и POST

Зачем и в каком виде происходит передача данных серверу и CGI-сценариям?

Программы предназначены для того, чтобы решать определенные задачи. Но кто же будет писать программу, которая решает конкретную задачу? Программы должны решать все задачи определенного класса. Например, следующая программа не является универсальной:а = 2 + 2; print a;

В данном исполнении программа каждый раз будет выводить одно и то же число. Сделаем программу универсальной: для этого будем передавать ей два параметра — числа, которые она должна сложить:read a, b;с = а + b; print с;

Точно такая же ситуация сложилась вокруг CGI -сценариев. Для работы сценарию нужно передать определенные параметры, он их обработает и передаст ответ. Поскольку браузер не позволяет вводить параметры напрямую — с клавиатуры, он передает их с помощью форм: вы вводите параметры в форму, затем браузер складывает все параметры в одну строку — строку запроса — и передает ее сценарию.

Алгоритм работы любой CG1-программы (или сценария — как кому больше нравится) выглядит следующим образом:

1. Получить данные, переданные пользователем.

Обработать данные.

Вывести результат.

Завершить работу.

Передача данных пользователя в HTML, как вы уже знаете, реализуется с помощью форм. Рассмотрим небольшую форму, передающую имя пользователя.

Пример формы

<form action="/cgi/delete. cgi" method= "post">

<input type- "text" name- "user_name">

<input type- "submit" name- "go" value- "Go!">

< / form >

Если данную форму сохранить как файл в формате HTML, то в окне браузера вы увидите поле для ввода имени и кнопку для передачи параметра на сервер.


Рис. 3.1. Форма в окне браузера

Теперь давайте разберемся с самой формой. Когда пользователь введет имя и нажмет кнопку «Go», введенное имя будет передано сценарию delete. cgi в качестве параметра. Этот параметр будет называться user name. Метод передачи данных задается параметром method тэга <form>. Сейчас мы используем метод Get. После того, как будет нажата кнопка «Go», в поле Адрес браузера будет показано примерно следующее: http://localhost/cgi/delete.cgi?user_name=Denis

После имени узла и пути к CGI -программе, ей передаются введенные пользователем данные в виде параметров. Параметр при пересылке присоединяется к URL -адресу сценария через знак вопроса (?), Если параметров несколько, то они разделяются амперсантом (&): http://localhost/cgi/delete.cgi?user_name = Denis&sex=Male

Метод передачи определяет, как именно данные будут переданы сценарию. «На глаз» определить какой метод используется можно следующим образом. Метод, при котором передаваемые параметры отображаются и строке браузера, является методом GET. Если вы не видите передаваемых параметров, значит, используется метод POST.

После того, как параметры переданы сценарию, задача сценария состоит в том, чтобы выполнить разбор строки, то есть выделить пары имя_параметра =значение. Теперь рассмотрим оба эти метода подробнее.

Метод GET


Поделиться с друзьями:

История создания датчика движения: Первый прибор для обнаружения движения был изобретен немецким физиком Генрихом Герцем...

Таксономические единицы (категории) растений: Каждая система классификации состоит из определённых соподчиненных друг другу...

Индивидуальные и групповые автопоилки: для животных. Схемы и конструкции...

Адаптации растений и животных к жизни в горах: Большое значение для жизни организмов в горах имеют степень расчленения, крутизна и экспозиционные различия склонов...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.013 с.