Первый сайт на Perl




Пример создания собственного CGI-сценария



Пример создания собственного CGI-сценария

Программа должна декодировать полученные данные, проверять заполнение обязательных полей формы и правильность подтверждения пароля, в зависимости от результатов проверки формировать документ для отсылки клиенту. Сохраним сценарий в файле /cgi-bin/registrar, cgi. Полный маршрут к данному файлу определяется параметрами конфигурации Web-сервера. Местоположение каталога cgi-bin обычно указывается относительно корня дерева документов Web-сервера, а не корневого каталога файловой системы. Например, если корнем является каталог /home/httpd/htmi/, то файл сценария будет иметь маршрутное ИМЯ /home/httpd/html/cgi-bin

/registrar.cgi, которое в запросе клиента будет указано как /cgi-bin /registrar.cgi. В первом приближении текст сценария может выглядеть следующим образом.

#!/usr/bin/perl

print "Content-type:text/html\n\n"; $method = $ENV{'REQUEST_METHOD'}; if ($method eq "GET") { ^

$form_data = $ENV{'QUERY_STRING'}; } else {

read (STDIN, $form_data, $ENV{'CONTENT_LENGTH'}); }

$form_data =~ s/%(..)/pack ("C", hex ($l))/eg; $form_data =~ tr/+/ /; @pairs = split (/&/, $form_data); foreach $pair (Spairs) {

($name, $value)=split(/=/,$pair);

$FORM{$name}=$value;

Проверка заполнения обязательных полей

if (!$FORM{'regname'} I I !$FORM{'passwordl'}) { print «goback

<html>

<head><title>Невведенные данные </title></head>

<body><h2>Извините, Вы пропустили обязательные данные</п2>

<br>

<а href=" ">Попробуйте еше раз, пожалуйста</а>

</body>

</html> goback ;}

#Проверка правильности ввода пароля elsif ($FORM{'passwordl 1 } eq $FORM{'password2'}){ print«confirmation <htrml>

<head><title>no3flpaBnHeM!</titlex/head> <Ьойу><h2>Поздравляем! </h2><br>

Ваша регистрация прошла успешно. Вы можете пользоваться нашей библиотекой. Спасибо за внимание.

</body>




Содержание  Назад  Вперед