#!/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 "Неправильный логин и/или пароль!";
 }
}