#!/usr/local/bin/perl5

#############################################################################
# ВНИМАНИЕ!                                                                 #
# Перед установкой этого скрипта внимательно прочтите файл readme.htm       #
#############################################################################

#############################################################################
# Гостевая книга 1.25							    #
# Написан  Андреем Юриным. Последнее обновление 19.02.99		    #
# ###########################################################################
#                            WWW.SCRIPT.RU                                  #
# ###########################################################################
# Этот скрипт является частью коллекции скриптов сервера www.script.ru      #
# Свои пожелания и/или предложения присылайте на andrey@script.ru           #
#############################################################################

#############################################################################
# Что-то не получается? Или возникают проблемы и Вы не хотите с ними        #
# разбираться, а Вам срочно нужна высокоточная и надежная гостевая книга?   #
#                                                                           #
#  ВЫХОД ОДИН - Лучший сервер гостевых книг - http://guestbook.land.ru      #
#                                                                           #
#############################################################################


##################################################
# Определение переменных:
##################################################

# URL файла гостевой книги
$guestbookurl = "http://dnipro.ukrainiansoccer.net/gk.htm";

# URL файла стилей
$styles_url = "http://dnipro.ukrainiansoccer.net/styles.css";


# URL пустого прозрачного изображения (используется для оформления)
$blank_url = "http://dnipro.ukrainiansoccer.net/blank.gif";

# Настоящий (системный) путь файлу гостевой униги
$guestbookreal = "gk.htm";

# URL исполняемого .pl файла гостевой книги
$cgiurl = "http://dnipro.ukrainiansoccer.net/cgi-bin/gk.pl";


&parse_form;


&no_name("Вы не указали Ваш комментарий!") unless $FORM{'comments'};
&no_name("Вы не указали Ваше имя") unless $FORM{'realname'};

open (FILE,"$guestbookreal");
@LINES=<FILE>;
close(FILE);
$SIZE=@LINES;


open (GUEST,">$guestbookreal");
for ($i=0; $i<=$SIZE; $i++) {
	$_=$LINES[$i];
	if (/<!--go_write-->/) { 
		print GUEST "<!--go_write-->\n\n";
		$FORM{'comments'} =~ s/\cM\n/<br>\n/g;

		select GUEST;
		print "<!-- COMMENT -->\n";
		print "<center><table border=\"0\" CELLSPACING=\"0\" CELLPADDING=\"1\" width=\"80%\">\n";
		print "<tr><td colspan=2>\n";

		if ($FORM{'url'}) {
			print "<font size=-1><a href=\"$FORM{'url'}\">$FORM{'realname'}</a></font>";
		} else {
			print "<font size=-1>$FORM{'realname'}</font>";
		}
		if ( $FORM{'username'} ){
			print "<font size=-1> \&lt;<a href=\"mailto:$FORM{'username'}\">";
			print "$FORM{'username'}</a>\&gt; </font>";
		}

		if ( $FORM{'city'} ){
			print "<font size=-1>$FORM{'city'},</font>";
		}
		if ( $FORM{'country'} ){
			print "<font size=-1> $FORM{'country'}</font>";
		}

		print "</td></tr>\n";

		$date=&get_date(time);
		print "<tr><td bgcolor=\"#003058\" width=\"4\"><img src=\"$blank_url\" border=\"0\" width=\"4\" height=\"1\"></td><td width=100%>\n";
		print "<font size=-1><b>$FORM{'comments'}</b></font><br>\n";
		print "<font size=1>$date</font>\n";
		print "</td></tr>\n";
		print "</table></center>";
		print "<hr size=\"1\" width=\"80%\" color=\"#003058\">\n<!-- /COMMENT -->\n\n";
		select STDOUT;
	} else {
			print GUEST $_;
	}
}
close (GUEST);



&print_head("Ваш комментарий добавлен!");
print "<center>\n";
print "<font size=4 color=\"#003058\"><b>Ваш комментарий добавлен!</b></font><br>\n"; 
print "Данные, введенные вами, добавлены в гостевую книгу:<br>\n"; 
print "<table border=\"1\">\n"; 
print "<tr>\n"; 
print "<td><font size=-1>Ваше имя</td>\n"; 
print "<td>\n"; 
print "$FORM{'realname'}</td>\n"; 
print "</tr>\n"; 
print "<tr>\n"; 
print "<td><font size=-1>E-mail</td>\n"; 
print "<td>\n"; 
print "$FORM{'username'}</td>\n"; 
print "</tr>\n"; 
print "<tr>\n"; 
print "<td><font size=-1>Домашняя<br>\n"; 
print "страничка</td>\n"; 
print "<td>\n"; 
print "$FORM{'url'}</td>\n"; 
print "</tr>\n"; 
print "<tr>\n"; 
print "<td colspan=\"2\"><font size=-1>Город:\n"; 
print "$FORM{'city'},\n"; 
print "<font size=-1>Страна:\n"; 
print "$FORM{'country'}\n"; 
print "</td>\n"; 
print "</tr>\n"; 
print "<tr>\n"; 
print "<td><font size=-1>Комментарии:</td>\n"; 
print "<td>$FORM{'comments'}</td>\n"; 
print "</tr>\n"; 
print "</table>\n"; 
print "<p><font size=-1><a href=\"$guestbookurl\">Вернуться в гостевую книгу</a></font></p>";

print "</center>\n";
&print_end;


sub no_name {
&print_head($_[0]);
print "<center>\n";
print "<font size=4 color=\"#003058\"><b>$_[0]</b></font><br>\n"; 
print "<form action=\"$cgiurl\" method=\"POST\">\n"; 
print "<table border=\"0\">\n"; 
print "<tr>\n"; 
print "<td><font size=-1>Ваше имя</td>\n"; 
print "<td><input type=\"text\" size=\"23\"\n"; 
print "name=\"realname\" value=\"$FORM{'realname'}\"></td>\n"; 
print "</tr>\n"; 
print "<tr>\n"; 
print "<td><font size=-1>E-mail</td>\n"; 
print "<td><input type=\"text\" size=\"23\"\n"; 
print "name=\"username\" value=\"$FORM{'username'}\"></td>\n"; 
print "</tr>\n"; 
print "<tr>\n"; 
print "<td><font size=-1>Домашняя<br>\n"; 
print "страничка</td>\n"; 
print "<td><input type=\"text\" size=\"23\"\n"; 
print "name=\"url\" value=\"$FORM{'url'}\"></td>\n"; 
print "</tr>\n"; 
print "<tr>\n"; 
print "<td colspan=\"2\"><font size=-1>Город: <input\n"; 
print "type=\"text\" size=\"15\" name=\"city\" value=\"$FORM{'city'}\">,\n"; 
print "<font size=-1>Страна: <input type=\"text\"\n"; 
print "size=\"15\" name=\"country\"  value=\"$FORM{'country'}\"\n"; 
print "</td>\n"; 
print "</tr>\n"; 
print "<tr>\n"; 
print "<td colspan=\"2\"><font size=-1>Комментарии:<br>\n"; 
print "<textarea name=\"comments\" rows=\"6\"\n"; 
print "cols=\"40\">$FORM{'comments'}</textarea></td>\n"; 
print "</tr>\n"; 
print "<tr>\n"; 
print "<td align=\"center\"><font size=\"2\"><input\n"; 
print "type=\"submit\"\n"; 
print "value=\"Добавить\"></font></td>\n"; 
print "<td><font size=\"2\"><input\n"; 
print "type=\"reset\" value=\"Очистить\"></font></td>\n"; 
print "</tr>\n"; 
print "</table>\n"; 
print "</form>\n"; 
print "</center>\n";
&print_end;
exit;
}

sub print_head {
	print "Content-type: text/html";
	print "\n\n";

	print "<html>
	<head>
	<title>Гостевая книга</title>
	<link rel=\"STYLESHEET\" type=\"text/css\" href=\"$styles_url\">
	</head>
	
	<body bgcolor=\"white\" topmargin=\"3\" leftmargin=\"3\" rightmargin=\"3\" marginheight=\"3\" text=\"#003058\">
	
	<center><table border=\"0\"  bgcolor=\"#003058\" CELLSPACING=\"0\" CELLPADDING=\"1\" width=\"80%\"><td>
	<table border=\"0\" width=\"100%\"  CELLSPACING=\"0\" CELLPADDING=\"0\" bgcolor=\"white\">
	
	<td bgcolor=\"#003058\" width=\"7\"><img src=\"$blank_url\" border=\"0\" width=\"7\" height=\"1\"></td>
	<td bgcolor=\"#8098c8\" width=\"4\"><img src=\"$blank_url\" border=\"0\" width=\"4\" height=\"1\"></td>
	<td bgcolor=\"#003058\" width=\"1\"><img src=\"$blank_url\" border=\"0\" width=\"1\" height=\"1\"></td>
	<td width=\"*\" bgcolor=\"e0e0f0\">
	<center><table border=\"0\"  CELLSPACING=\"0\" CELLPADDING=\"3\" width=\"100%\"><td>
	";
}


sub print_end {

print "
<hr size=\"1\" width=\"100%\" color=\"#003058\">


</td></table></center>
</td>
<td bgcolor=\"#003058\" width=\"1\"><img src=\"$blank_url\" border=\"0\" width=\"1\" height=\"1\"></td>
<td bgcolor=\"#8098c8\" width=\"4\"><img src=\"$blank_url\" border=\"0\" width=\"4\" height=\"1\"></td>
<td bgcolor=\"#003058\" width=\"7\"><img src=\"$blank_url\" border=\"0\" width=\"7\" height=\"1\"></td>
</table>
</td></table><center>

</body>
</html>";
}


sub parse_form {
	if ($ENV{'REQUEST_METHOD'} eq "POST") {$mode = 0}
	if ($ENV{'REQUEST_METHOD'} eq "GET") {$mode = 1}
	if ($mode == 0) {read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'})}
	if ($mode == 1) {$buffer = $ENV{'QUERY_STRING'}}
	@pairs = split(/&/, $buffer);
	foreach $pair (@pairs) {
		($name, $value) = split(/=/, $pair);
		$value =~ tr/+/ /;
		$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
		$value =~ s/\</&lt;/gi;
		$value =~ s/>/&gt;/gi;
		$FORM{$name} = $value;
	}
}


sub get_date {
	@days = ('Воскресенье','Понедельник','Вторник','Среда','Четверг','Пятница','Суббота');
	@months = ('Январь','Февраль','Март','Апрель','Май','Июнь','Июль', 'Август','Сентябрь','Октябрь','Ноябрь','Декабрь');
	($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime($_[0]);
	if ($hour < 10) { $hour = "0$hour"; }
	if ($min < 10) { $min = "0$min"; }
	if ($sec < 10) { $sec = "0$sec"; }
	my $date;
	$date = "$days[$wday], $months[$mon] $mday, 19$year в $hour\:$min\:$sec";
	return $date;
}