#!/usr/bin/perl -w use strict; use CGI qw(:standard); use FileHandle; use Fcntl ':flock'; # thanks for perlfunc sub lock { flock($_[0],LOCK_EX); seek($_[0], 0, 2); } sub unlock { flock($_[0],LOCK_UN); } use vars qw($fh %cfg %style @fucks); require 'photogal.files/main.cfg'; print CGI->header(); # -------------------------------------------------------------------------- # # -------------------------------------------------------------------------- # my $tgs_start = '
'; # # # my $tgs_end = '
'; my $profil = ''; my $comm = '
'; my $send = '
'; my $divide = ' :: '; my $word_length = 20; # -------------------------------------------------------------------------- # # -------------------------------------------------------------------------- # my $what = $cfg{param('show')}; my $fl = (param('img')); my $img = "$cfg{path}/$what/$fl.jpg"; my $artfile = "$cfg{path}/$what/arts/$fl.txt"; ## CHANGES my ($name, $url, $email, $text, $subm, $error, $v_n, $v_t); ADD_COMM:{ $name = param('name'); $text = param('text'); $subm = param('submit'); my $mark = param('mark'); $text=~s|(\S[\,\.\:\;\-\'])(\S)|$1 $2|g; $text=~tr|\r\n| |; $text=~s|\#{4,}|\#\#\#|g; $text=~s|`|'|g; $email =~s|`|'|g; $url =~s|`|'|g; unless($name and $text) { $error = '
Вы не заполнили необходимые поля !
' if $subm; $v_n = param('name'); $v_t = param('text'); last ADD_COMM; } if($text =~m`\S{$word_length,}`) { $error = "
Длина слова должна быть не длинее $word_length
"; $v_n = param('name'); $v_t = param('text'); last ADD_COMM; } if(param('url')) {$url = param('url')} else {$url = 'none'}; if(param('e-mail')) {$email = param('e-mail')} else {$email = 'none'}; foreach (@fucks) { $email =~s|$_|***|ig; $text =~s|$_|***|ig; $name =~s|$_|***|ig; $url =~s|$_|***|ig; } my ($mins, $hours, $day, $month, $year) = (localtime(time))[1..5]; $hours = ($hours+8); if ($hours > 23) { $hours = ($hours-24), $day = ($day+1)} if ($hours < 10) { $hours = "0".$hours} if ($mins < 10) {$mins = "0".$mins} if ($month < 10) { $month = "0".($month+1)} else {$month = $month+1} if ($day < 10) {$day = "0".$day} my $time = ($hours).':'.$mins.'('.$day.'.'.$month.'.'.($year+1900).')'; $fh = new FileHandle(">>$artfile"); lock($fh); print $fh "$name`$email`$url`$text`$time`$mark\n"; unlock($fh); my $mymail = 'admin@halmer-u.info'; my $tomail = 'ua9xlc@mail.ru'; open (MAIL, "| /usr/sbin/sendmail -t"); print MAIL "From: $mymail\n"; print MAIL "To: $tomail\n"; print MAIL "Subject: Новая запись в галерее\n\n"; print MAIL "$name\n $email\n $url\n $text\n $time\n $mark\n $what\n $fl\n"; close (MAIL); undef $fh; ADD_COMM:} ## OP..OPEN my $ind = 1; my $arts = '
'; $fh = new FileHandle($artfile); my @comms = <$fh>; foreach(reverse @comms) { my @nate = split('`', $_); my $mark_kn = mark_kn($nate[5]); $arts .="$tgs_start$profilИмя: $nate[0]\n"; $arts .="$divideE-mail: $nate[1]\n" if $nate[1] !~m`^\s*none\s*$`; $arts .="$divideURL: $nate[2]$divide\n" if $nate[2] !~m`^\s*none\s*$`; $arts .= "\n"; $arts .=""; } undef $fh; my $img_name; $fh = new FileHandle("photogal.files/$what/list.data"); while(<$fh>) { $img_name = $1 if $_ =~m`^$fl\s*-\s*(.*)`} undef $fh; $arts .= qq`
$mark_kn
"; $arts .="$commОтзыв: $nate[3]
$sendОтправленно: $nate[4]\n" if $nate[4] =~/\S/; $arts .= "$tgs_end

$error\n \n
\n
Оставьте свой отзыв !
\nИмя: ::\n E-mail: ::\n URL:
Отзыв:\n\n
\n
`; $arts .= '
'; print qq`$style{title2}\n \n\n
\n
$img_name
$arts\n
Programming by mr bik (c) 2001
\n`; ## functions sub mark_kn { my $mval; $mval = '' if $_[0] == 0; $mval = "фото: Класс !!" if $_[0] == 5; $mval = "фото: Хорошо" if $_[0] == 4; $mval = "фото: Нормально" if $_[0] == 3; $mval = "фото: Плохо" if $_[0] == 2; $mval = "фото: Ужасно !!" if $_[0] == 1; my $dlina = 100 - (length($mval)/2); return ($mval); }