Код: Выделить всё
sub page
{
## если ключ HTTP_X_FORWARDED_FOR определен
if ( $ENV{ HTTP_X_FORWARDED_FOR } ) {
## в переменную $ip записывается IP-адрес
## клиента, подключенного через прокси
$ip = $ENV{ HTTP_X_FORWARDED_FOR};
} else {
## в противном случае запишем в $ip
## удаленный IP-адрес клиента
$ip = $ENV{ REMOTE_ADDR };
}
($sec,$min,$hour,$mday) = localtime(time);
$ttt=time;
$idl=param("idl");
print << "[INFO2]";
<TD WIDTH=20000 HEIGHT=600 valign="top" bgcolor="#FFFFFF"><p></p>
<center> <p><font size="2" face="Verdana"> <b>Голосования</b> </font></p> </center>
[INFO2]
my $dbh2 = DBI->connect("DBI:mysql:database=sitesdj_db;host=, { RaiseError => 1, AutoCommit => 0 }) || die $DBI::errstr;
#$castaway12
$sth2 = $dbh2->prepare("SELECT * FROM rdate WHERE nickname=?");
#$sth->execute();
$dbh2->disconnect();
while ( ($rnum, $rnik, $rip, $rdat)
=$sth2->fetchrow() )
{
$curdat=$rdat+30000;
print "$rip";
print "$idl";
if (($rip=~/$ip$/i) && ($rnik=~/$idl$/i) && ($ttt <= $curdat)) {
print "awibka vremya menwe data";
exit;
}
if (($rip=~/$ip$/i) && ($rnik=~/$idl$/i) && ($ttt > $curdat)) {
print "v bazu";
## vstavlyaem v sazu
$nngolosov=$golosov+$castaway12;
$nnvsegog=$vsegog+1;
$nnsrednie=$nngolosov/$nnvsegog;
my $dbh = DBI->connect("DBI:mysql:database=sitesdj_db;host=, { RaiseError => 1, AutoCommit => 0 }) || die $DBI::errstr;
my $result = $dbh->prepare("update rdate set nickname = ?, cdate = ? where ip = $ip") || die "axvxvxcvxcvxw";
$result->execute( $idl, $ttt );
$result->finish();
$dbh->disconnect();
print "vstavili - UPDATING";
exit;
}
else
{
## vstavlyaem v sazu
print "no login, no ip";
##########################################
##########################################
### esli netu
###
###
print "v bazu";
## vstavlyaem v sazu
# $nngolosov=$golosov+$castaway12;
#
# $nnvsegog=$vsegog+1;
#
# $nnsrednie=$nngolosov/$nnvsegog;
my $dbh = DBI->connect("DBI:mysql:database=sitesdj_db; { RaiseError => 1, AutoCommit => 0 }) || die $DBI::errstr;
#$result2 = $dbh->prepare("SELECT NOW()");
#$list = $result2->fetchrow_array ();
my $result = $dbh->prepare("INSERT INTO rdate (nickname,ip,cdate) VALUES (?,?,?)") || die "axvxvxcvxcvxw";
###$list="2008-03-03";
$result->execute( $idl, $ip, $ttt );
$result->finish();
$dbh->disconnect();
print "zapici ne bilo";
exit;
}
print "$rip";
print "$idl";
}
}
вопрос: почему не выполняеться вот этот блок? после else, если нуте в базе т овставить надо, он просто вырубаеться и ничего не пишет...
(сам блок без ничего выполняеться, INSERT!)
Код: Выделить всё
else
{
## vstavlyaem v sazu
print "no login, no ip";
...............
это голсование сделано с блокировакой айпи
UPD: сделал, вместо else вот это: if (($rip !~ /$ip/) && ($rnik !~ /$idl/) && (!(length($rdat)) ))