#!/usr/bin/perl
# Globals begin
use CGI::Carp qw(fatalsToBrowser);
$REQUIRE_DIR='require';
push (@INC,$REQUIRE_DIR);
require 'config.cfg';
require 'arrays.pl';
require 'graph.pl';
require 'RanImSub.pl';
use Image::Magick;
%FORM=();
%data=();
%CODE=();
$result=check_host($ENV{'REMOTE_ADDR'});
if($result eq "stop"){
error("Banned host");
}
parse_form();
require 'arrays.pl';
require 'graph.pl';
require 'RanImSub.pl';
use Image::Magick;
codeLoad();
####################################################################
# Проверка заполнения полей
if(!defined($FORM{'cID'}))
{
setCode();
codeSave();
out_add_page();
exit;
}
# Конец проверки
#######################################################################
$FORM{'name'} =~ s/^( +)//;
if($FORM{'name'} eq '' || $FORM{'name'} =~ /script/i)
{
$VAR{'error_msg'}=$ERROR_MSG."\"Имя\".";
delete($CODE{$FORM{cID}});
unlink $IMAGE_PATH.$FORM{'cID'}.".png";
setCode();
codeSave();
out_add_page();
exit;
}
$FORM{'message'} =~ s/^( +)//;
if($FORM{'message'} eq '' || $FORM{'message'} =~ /script/i)
{
$VAR{'error_msg'}=$ERROR_MSG."\"Сообщение\".";
delete($CODE{$FORM{cID}});
unlink $IMAGE_PATH.$FORM{'cID'}.".png";
setCode();
codeSave();
out_add_page();
exit;
}
$FORM{'email'} =~ s/^[\s-]+//;
if(($FORM{'email'} ne ''&&($FORM{'email'} =~ /[А-я]/ || $FORM{'email'} !~ "@")) || $FORM{'email'} =~ /script/i)
{
$VAR{'error_msg'}=$ERROR_MSG."\"E-Mail\".";
delete($CODE{$FORM{cID}});
unlink $IMAGE_PATH.$FORM{'cID'}.".png";
setCode();
codeSave();
out_add_page();
exit;
}
elsif($FORM{'email'} eq '' || $FORM{'email'} =~ /script/i){
$FORM{'email'} ='-';
}
$FORM{'http'} ='-';
# Верификация
if(!$FORM{'code'}){
$VAR{'error_msg'}=$ERROR_MSG."\"Верификационный код\".";
delete($CODE{$FORM{cID}});
unlink $IMAGE_PATH.$FORM{'cID'}.".png";
setCode();
codeSave();
out_add_page();
exit;
}
else{
my($c,$tm)=split(/ $SEPARATOR /,$CODE{$FORM{'cID'}});
# error("!$FORM{'cID'}!
!$CODE{$FORM{'cID'}}!
!$c!
!$FORM{'code'}!");
if($FORM{'code'} ne $c){
$VAR{'error_msg'}=$ERROR_MSG."\"Верификационный код\".";
delete($CODE{$FORM{cID}});
unlink $IMAGE_PATH.$FORM{'cID'}.".png";
setCode();
codeSave();
out_add_page();
exit;
}
else{
delete($CODE{$FORM{cID}});
unlink $IMAGE_PATH.$FORM{'cID'}.".png";
codeSave();
}
}
#######################################################################
$qstr="$FORM{'name'} $FORM{'message'}";
foreach(@banned_words){
if($qstr=~/$_/){
out_book();
$VAR{"BANNED"}=$_;
open (MAIL, "|$mailprog $to") || die "Can't open $mailprog!\n";
parse_template($MAIL_TEMPLATE,$BANNED_MAIL_TEMPLATE);
close (MAIL);
exit;
}
}
$id=read_files();
$id++;
$date=time;
$date_format="<0d>.<0m>. ";
if(!($date=&format_date($date,$date_format))) {
error("DATE");
}
if($FORM{'http'} !~ /^(http:\/\/)/){
$FORM{'http'}="http:\/\/".$FORM{'http'};
}
#######################
$FORM{'message'}=~s/(
)?([^">])http:\/\/([^ <\)]+)/$1$2http:\/\/$3<\/a>/g;
$FORM{'message'}=~s/(
)?([^\/])www\.([^ <]+)/$1$2http:\/\/www\.$3<\/a>/g;
$FORM{'message'}=~s/( |\(|
)([^ ><=]+)\.(ru|com|org)/$1http:\/\/$2\.$3<\/a>/g;
########################
$dnew_line="$id $SEPARATOR $date $SEPARATOR $FORM{'name'} $SEPARATOR $FORM{'email'} $SEPARATOR $FORM{'http'} $SEPARATOR $FORM{'message'}\n";
$mnew_line="$id $SEPARATOR $ENV{'REMOTE_ADDR'} $SEPARATOR $SEPARATOR $SEPARATOR \n";
$last_id=add_line($dnew_line,$mnew_line);
write_files();
open (MAIL, "|$mailprog $CONFIG{'to'}") || die "Can't open $mailprog!\n";
parse_template($MAIL_TEMPLATE,MAIL);
close (MAIL);
%CONFIG=();
%VAR=();
### Исправим html-файл ###
$page=1;
#out_book();
print "Location:http://www.ftad.ru/cgi-bin/gbook/gbook.pl\n\n";
#create_spisok();
#print_location($last_id);