#!/usr/bin/perl
###############################################################################
#
# check_get_1.pl - пример проверки логина и пароля, передаваемых методом GET,
# с использованием функции split() для выделения передаваемых параметров
#
# При вызове с пустой строкой данных:
# http://localhost/cgi-bin/check_get_1.pl
# выводит форму для ввода логина и пароля
#
# При вызове с непустой строкой данных, например:
# http://localhost/cgi-bin/check_get_1.pl?log=vasya&psw=password
# выделяет из строки логин и пароль и проверяет их
#
###############################################################################
print "Content-type: text/html\n\n";
$param = $ENV{QUERY_STRING};
if ($param eq '')
{
# Если строка данных пустая - выводим форму для ввода логина и пароля
print <<ENDHTML;
<html>
<head>
<title>Пример проверки логина и пароля</title>
</head>
<body>
<center>
<form action="check_get_1.pl" method="get">
Ваш логин: <input type="text" name="log">
<br><br>
Ваш пароль: <input type="text" name="psw">
<br><br>
<input type="submit" value="Проверить">
</center>
</body>
</htmL>
ENDHTML
}
else
{
# Иначе (если строка не пустая) начинаем обработку данных
# Пример строки: log=vasya&psw=password
($parlog, $parpas) = split("&",$param);
# разделим входную строку по символу "&" на отдельные параметры логина и пароля
# Пример: $parlog <=> log=vasya - параметр логина, $parpsw <=> password - параметр пароля
# $parpsw <=> psw=password - параметр пароля
($tmp, $log) = split("=",$parlog);
# разделим параметр логина по символу "=" на имя и значение
# Пример: $tmp <=> log - имя параметра (далее нам не нужно, поэтому поместим
# его во вспомогательную переменную $tmp),
# $log <=> vasya - значение параметра (логин), его-то и будем далее проверять
($tmp, $pas) = split("=",$parpas);
# разделим параметр пароля по символу "=" на имя и значение
# Пример: $tmp <=> psw - имя параметра (далее нам не нужно, поэтому поместим
# его во вспомогательную переменную $tmp),
# $pas <=> password - значение параметра (пароль)
# Истинные логин и пароль поместим в переменные $log_ok и $pas_ok
$log_ok = 'vasya';
$pas_ok = 'password';
# Выполняем проверку полученных логина и пароля
if (($log eq $log_ok) && ($pas eq $pas_ok))
{
print "Логин и пароль - верные!";
}
else
{
print "Неправильный логин и/или пароль!";
}
}