--- db/prgsrc/db.cgi 2010/09/24 09:05:48 1.161 +++ db/prgsrc/db.cgi 2016/06/13 16:32:07 1.164 @@ -11,6 +11,8 @@ use URI::Escape; my $proxyredirect=1; use POSIX qw(locale_h); use locale; +my $maxQuestions = 3000; + use vars qw($opt_z); use Getopt::Std; #my ($dbuser,$dbname,$dbpass,$dbhost); @@ -71,11 +73,6 @@ $outputkvo=100 if $outputkvo>100; if (param('debug')) {$debug=1; $printqueries=1} *STDERR=*STDOUT if $debug; -if ($url!~ /\/\/db\// && $url !~ /db\.chgk\.info/ && $url !~ /localhost/ && $url !~ /bilbo/ && $url !~ /zaba/ && $url !~ /question\.chgk\.info/ ) { - my $u="http://db.chgk.info/cgi-bin/db.cgi?$qs"; - Redirect ($u); - exit; -} if ($proxyredirect && $metod=~/proxy/ && $url !~ /localhost/ && $url !~ /bilbo/ && $url !~ /zaba/) { my $u="http://chgk.zaba.ru/cgi-bin/db.cgi?$qs"; @@ -779,7 +776,7 @@ sub Search { my $query; $query="SELECT QuestionId FROM Questions - WHERE ($f LIKE $sstr) AND (".&makewhere.") ORDER BY QuestionId"; + WHERE ($f LIKE $sstr) AND (".&makewhere.") ORDER BY QuestionId LIMIT $maxQuestions"; $sth = $dbh->prepare($query) @@ -853,10 +850,10 @@ sub PrintList { else {$nav.=' 'x15;} my ($fprint,$lprint); - my $llprint=$fkvo- ($fkvo)%$outputkvo+1; # + my $llprint=$fkvo- ($fkvo-1)%$outputkvo; # if ($fkvo<=$outputkvo*7) { $fprint=1; - $lprint=$llprint; + $lprint=$llprint+($fkvo)%$outputkvo; } elsif ($first>$outputkvo*3 && $fkvo-$first>$outputkvo*3) { @@ -869,8 +866,8 @@ sub PrintList { } else { - $lprint=$llprint; - $fprint=$lprint-$outputkvo*6 + $lprint=$fkvo; + $fprint=$lprint-($lprint-1)%$outputkvo-$outputkvo*6; } # my $fprint=($first>$outputkvo*3) ? $first-$outputkvo*3 : 1; @@ -882,7 +879,6 @@ sub PrintList { # } - for($f=$fprint; $f<=$lprint; $f+=$outputkvo) { # next if $first-$f>$outputkvo*3; @@ -894,10 +890,13 @@ sub PrintList { } if ($lprint+$outputkvo<$fkvo) { + my $reminder = ($llprint-1)%$outputkvo; + my $newlprint = $llprint-$reminder; +# $newlprint +=$outputkvo if $reminder!=$outputkvo-1; $nav.= (" "x4). a({href=>($url."?".$qs."\&first=".($first+$outputkvo))},">").(" "x4). - a({href=>$url."?".$qs."\&first=$llprint"},">>").(" "x4) + a({href=>$url."?".$qs."\&first=$newlprint"},">>").(" "x4) } $Output.= "$nav".br."\n"; my @q; @@ -1012,6 +1011,8 @@ sub PrintSearch { $suffix = 'я'; } + $hits = 'очень много' if ($hits==$maxQuestions); + $Output.= p({align=>"center"}, "Результаты поиска на " . strong($sstr) . " : $hits попадани$suffix."); @@ -2258,7 +2259,7 @@ div.razdatka_header {font-style:italic;} my ($mime_type) = $text ? "plain" : "html"; print F <