#!/usr/local/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$2
http:\/\/www\.$3<\/a>/g; $FORM{'message'}=~s/( |\(|
)([^ ><=]+)\.(ru|com|org)/$1
http:\/\/$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/gbook/gbook.pl\n\n"; #create_spisok(); #print_location($last_id);