--- db/prgsrc/db.cgi 2004/02/08 00:35:29 1.129 +++ db/prgsrc/db.cgi 2004/03/11 07:14:14 1.130 @@ -8,9 +8,16 @@ use POSIX qw(locale_h); use locale; use vars qw($opt_z); use Getopt::Std; +my ($dbuser,$dbname,$dbpass,$dbhost); +require "dbdefs.pl"; +$dbuser||="piataev"; +$dbname||="chgk"; +$dbpass||=""; +$dbhost||="localhost"; getopts('z'); $opt_z||=param("makehtml"); my $timestamp="_timestamp.tmp"; +my $usehash=0; my $paramtour; my $withanswers=param('answer')||param('answers'); open STDERR, ">/var/tmp/errors1"; @@ -33,28 +40,39 @@ if ($^O =~ /win/i) { { $realHTMLDIR="/home/piataev/public_html/dimrub/db/files/"; } +my $url=url||''; + my $usehtml=$opt_z||0; $usehtml=1; +$usehtml=0 if $url=~/zaba/; + my $usewas=0; my $cashednumber=500; my $outputnumber=10; my ($proxyptext,$proxysstr); my $printqueries=0; -my $url=url||''; my $qs=query_string; my $globaloutput; my %forbidden=(); my $debug=0; #added by R7 +my $metod=param('metod')||''; my $outputkvo=param('kvo') ||$outputnumber; $outputkvo=100 if $outputkvo>100; if (param('debug')) {$debug=1; $printqueries=1} *STDERR=*STDOUT if $debug; -if ($url !~ /db\.chgk\.info/ && $url !~ /localhost/ && $url !~ /bilbo/) { +if ($url !~ /db\.chgk\.info/ && $url !~ /localhost/ && $url !~ /bilbo/ && $url !~ /zaba/) { my $u="http://db.chgk.info/cgi-bin/db.cgi?$qs"; Redirect ($u); exit; } + +if ($metod=~/proxy/ && $url !~ /localhost/ && $url !~ /bilbo/ && $url !~ /zaba/) { + my $u="http://chgk.zaba.ru/cgi-bin/db.cgi?$qs"; + Redirect ($u); + exit; +} + #if (!param('sstr') && param('all')) { # my $destination='http://db.chgk.info/all.html'; # Redirect($destination); @@ -1481,7 +1499,8 @@ sub Get12Random { srand; my $where=0; my $r=int (rand(10000)); - my $w1=$r<5000? "QuestionId<5000 ":"QuestionId>=5000"; + my $w1=$r<5000? "QuestionId<50000 ":"QuestionId>=50000"; + $w1=1 if $url=~/zaba/; $w1=1 if $type!~/Ч/; foreach (split '', $type) { @@ -1909,9 +1928,11 @@ MAIN: $tour = (param('tour')) ? param('tour') : 0; my $texttour=$tour; my ($sth,$dbh); - $dbh = DBI->connect("DBI:mysql:chgk", "piataev", "") + my($dsn) = "DBI:mysql:database=$dbname;host=$dbhost"; + $dbh = DBI->connect($dsn, $dbuser, $dbpass) +# $dbh = DBI->connect("DBI:mysql:$dbname", $username, $dbpass) or do { - print h1("Временные проблемы") . "База вопросов временно не + print header.h1("Временные проблемы") . "База вопросов временно не работает. Заходите попозже."; print &Include_virtual("$reklama") if $url!~/localhost/; print end_html; @@ -1920,7 +1941,7 @@ MAIN: if (param('qid') && (param('qid')=~/^\d+$/) || $tour && $tour=~/^\d+$/) { - my $destination='http://db.chgk.info/search.html'; + my $destination='http://chgk.zaba.ru/search.html'; # print header (-'Content-Type' => 'text/html', # -'Location:'=> 'http:\\db.chgk.info'); Redirect($destination); @@ -1976,7 +1997,8 @@ print br.br.$d; if ($text && !param ('comp')) { print header('text/plain'); - } elsif (!param('comp')) {print header;} + } elsif (!param('comp')) { + print header(-charset =>'koi8-r')} my $sstr=param('sstr'); $opt_z||=param("makehtml"); if (param('qid')) { @@ -2043,7 +2065,7 @@ th {font-size: x-small; font-family : sa $globaloutput.=&Include_virtual("$reklama")||''; } - if (!$opt_z && length ($qs)<=255 && $qs !~ /(sstr)|(rand)|(comp)|(all=)/i) { + if ($usehash && !$opt_z && length ($qs)<=255 && $qs !~ /(sstr)|(rand)|(comp)|(all=)/i) { my $sth=$dbh->prepare("SELECT page,times,t from hash where query=".$dbh->quote($qs)); $sth->execute(); my ($p,$times,$t)=$sth->fetchrow(); @@ -2228,7 +2250,7 @@ my ($sth) = $dbh->prepare("SELECT t1.Id, } if (!$opt_z){ print $globaloutput; - if (($qs!~ /(rand)|(sstr)|(comp)/i) && (length $qs<=255)) { + if (($qs!~ /(rand)|(sstr)|(comp)/i) && (length $qs<=255) && $usehash) { $globaloutput= $dbh->quote($globaloutput); $dbh->do("insert into hash (query,page) values (". $dbh->quote($qs).