Posts Tagged ‘CGI-программы’

Простая поисковая система на Perl

Суббота, Август 11th, 2012 Нет комментариев

Under : , , , , ,

Стандарт cgi (common gateway interface) изначально был разработан для того, чтобы дать возможность пользователям запускать программы, доступные на сервере через Веб. Первые cgi-программы служили простым интерфейсом для стандартных команд grep и finger, преобразовывали информацию, выдаваемую этими командами, в формат html и передавали полученные результаты браузеру пользователя.

cgi-программы и прочие программы, выполняемые сервером, с тех пор значительно усложнились. Но одно из их возможных применений не теряет своей актуальности со временем. Это возможность поиска среди документов, хранящихся на веб-сайте, по ключевому слову или строке. Если поисковые системы (сейчас их называют порталами) делают возможным поиск по всей сети Интернет среди огромного количества серверов, то cgi-программы реализуют упрощенную задачу поиска. Они выполняют поиск в файлах только одного, локального сервера и генерируют список url к различным документам по запросу пользователя.
Рассмотрим способы создания нескольких типов поисковых программ. Они хотя и не смогут соревноваться с ht://dig и webglimpse, но дают возможность разобраться в том, как работают подобные программы и как они создаются.

Простой поиск и командная строка (далее…)

Разбор данных HTML-форм

Воскресенье, Апрель 15th, 2012 Нет комментариев

Under : , , , , ,

Windows CGI требует, чтобы Web сервер декодировал данные из HTML форм, если они переданы при помощи POST метода запроса. Он не требует от сервера декодирования параметров, если они переданы в качестве строки запроса («query string»), являющейся частью URL.

Существует два способа, которыми данные из форм могут быть переданы серверу броузером:

URL-Encoded

Это наиболее используемый формат данных, передаваемых из форм. Содержимое полей формы выделяются из формы и передаются согласно спецификации HTML 1.0, а затем собираются в одну строку, где отделяются друг от друга символом амперсанда. Тип содержания сообщения устанавливается броузером в application/ x - www - form - urlencoded. (далее…)

Несколько советов по отладке

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

Если скрипт не исполняется потому,что вы допустили синтаксические ошибки,то самих этих ошибок вы не увидите,на экране будет только ‘Internal Server Error’ из-за чего она произошла вы можете только гадать. Также если вы забыли задать к какому-то файлу нужные права доступа ,то тоже будет трудно выяснить что же произошло и в чем причина ошибки (если конечно к этому вы не готовы).

Ну вот ,хватит вас пугать,тем более что нас не запугаешь ;) !

Приступим к отладке.Я вам опишу достаточно примитивные меры,которыми я сам пользуюсь.

Начнем с того что у нас есть скрипт test.cgi мы уже сделали его исполняемым chmod +x test.cgi Простейший способ проверить его на ошибки это команда perl -c test.cgi Ключ -c говорит Perl что надо только проверить синтаксис.Все сообщения об ошибках вы можете видеть и подправить.Более тяжелый случай состоит в том когда Perl встроен в Web -Сервер, причем версии разные.Как у нас на uic’е ;(( ! Тот Perl с которым работаем в командной строке 4й версии ,а на сервере стоит 5й версии.Если ваша CGI-программа использует при этом какие-нибудь преимущества 5-й версии (например обьектно-ориентированые модули),то вы думаете отладить ее низя -ошибаетесь!.Только приготовтесь к тому, что я сейчас скажу,вы сядте,а то упадете ;) ) :
(далее…)