Автор Тема: Помогите с Mod_perl  (Прочитано 2259 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Kwazar

  • Философ
  • Постоялец
  • ***
  • Сообщений: 201
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.uhuhu.ru/
Помогите с Mod_perl
« : 25 Октября 2004, 10:57:48 »
Вот кусок на perl, отражающий все необходимые дейстивия для меня (пример).

#!/usr/bin/perl
use CGI::Carp qw (fatalsToBrowser);
use Geo::IP;
$komm=0.2;

print "Content-type: text/html\\n\\n";
print "Banners";

$site="http://bannerdating.com";

$refer="$ENV{\'HTTP_REFERER\'}";
if ($ENV{HTTP_X_FORWARDED_FOR}){$ip ="$ENV{HTTP_X_FORWARDED_FOR}";}
else{$ip ="$ENV{REMOTE_ADDR}";}



if ($refer eq \'\')
{
   &system_banner;
}
elsif ($refer !~ /http\\:\\/\\//gi)
{
   &system_banner2;
}
else
{
      &viev;
}

sub viev
{

   use DBI;
   $dbh = DBI->connect("DBI:$db:$dbn:$host_db","$login_db", "$pass_db") || die $DBI::errstr;
   $users_info_table="info_users";

   ########Получаем данные
   read(STDIN, $buffer, $ENV{\'CONTENT_LENGTH\'});
   if (!$buffer)
   {
      $buffer=$ENV{\'QUERY_STRING\'};
   }
   @pairs = split(/&/, $buffer);
   foreach $pair (@pairs)
   {
      ($name, $value) = split(/=/, $pair);
      $value =~ tr/+/ /;
      $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
      $value =~ s/\\\'//gi;
      $value =~ s/\\"//gi;
      $F{$name} = $value;
   }

   ##Узнаем текущий час $hour (серверное время)
   $t=localtime();
   ($nedelya,$mesyac,$day,$time,$god)=split(/\\ /,$t);
   ($hour,$min,$sec)=split(/\\:/,$time);

   my $gi = Geo::IP->new(GEOIP_STANDARD);
   $country = $gi->country_code_by_addr("$ip");

   if ($country eq \'\' || ($country ne "AT" && $country ne "AU" && $country ne "CA" && $country ne "CN" && $country ne "DE" && $country ne "ES" && $country ne "FR" && $country ne "IL" && $country ne "IT" && $country ne "JP" && $country ne "RU" && $country ne "UA" && $country ne "US")) {$country="OT";}

   ##Получаем номер группы баннера
   $sql="select id,id_user from $users_info_table where status=\'1\' and h_$hour=\'1\' and $country=\'1\' and (day_r>day_b or day_r=\'0\') and balans>0 and id_user<>\'$F{id}\' ORDER BY RAND() LIMIT 1";

   $sth = $dbh->prepare("$sql");
   $sth->execute || die $dbh->errstr;
   @id_info=$sth->fetchrow;
   $sth->finish;
}



Так уж повелось, что я всегда учусь на примерах.
Вы не могли бы привести пример кода этого же куска, но уже под mod_perl?
Моя задача: ускорить скорость отработки скрипта для банерообменика (показывает баннер и ведет статистику по этому баннеру).

Заранее благодарю.
С уважением Сергей

Оффлайн NeoNox

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3012
  • +0/-0
  • 0
    • Просмотр профиля
Помогите с Mod_perl
« Ответ #1 : 25 Октября 2004, 12:06:42 »
Kwazar а гуглем восиользоваться никак нельзя?
http://www.hosting.zenon.ru/documentation/v-www/0026.html#19
The documentations is your friend

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28