|
ru.cgi.perl- RU.CGI.PERL ------------------------------------------------------------------ From : Al Zaharov 2:5005/58.88 01 Aug 2001 00:15:12 To : Pavel Ammosov Subject : Re: посмотрите, плз, скрипт (рабочий), что с ним не так? -------------------------------------------------------------------------------- > Al Zaharov wrote: > AZ>#!/usr/bin/perl -w > AZ>use CGI qw (:standard); > AZ>use strict; > AZ>sub main { > AZ>$main::fetchipac = "/usr/local/sbin/fetchipac"; > тут будут проблемы, если станешь запускать из под Apache::Registry (mod_perl). > Выбрось $main:: и перепиши это в виде > use vars qw(%cfg); > $cfg{'ipacsum'} = "/usr/local/sbin/ipacsum"; > ... а что делать с таким: my @rules_sorted = sort {$rulenames{$a}<=>$rulenames{$b}} keys %rulenames; ?? причем, rulenames глобальная.. или вот с этим: push(@timestamps, $ts); ? кстати, а может использовать our? правда, как я понял, это дает смысл, только если определять глобальные.. да и появился он, вроде, только в 5.6 > AZ> &print_pic($q->param('showpic'), $q->param('frame')); > ты уверен, что тебе не достаточно просто print_pic(...), без & в начале? спасибо.. правда, она ведь и не мешала? ну и передали еще и @_ > AZ>open(DATA, "$main::fetchipac $main::fetchipac_options ". > AZ> "-t$starttime,$endtime -m|") > AZ> || die "can't run $main::fetchipac\n"; > AZ>my $count=<DATA>; > AZ>while(<DATA>) > AZ>{ > AZ> if (/^(.)\s(\d+)$/) { > AZ> my $ts = $2; > AZ> if ($1 eq "*") { > AZ> push(@main::timestamps, $ts); > AZ> } > AZ> } > AZ>} > AZ>close DATA; > AZ>sub makeunixtime { > Я вообще не понял, чего эта функция делает? makeunixtime? дает timestamp_t по utc, на входе - локальное время.. а если тот кусок, который выше - читает вывод и практически тут же пихает его дальше, с повторным чтением.. > AZ> if (defined($pic) && ($ENV{'HTTP_REFERER'} eq url())) { > REFERER никто выставлять не обязан, так что ты запросто можешь отказать > вполне легальному посетителю в обслуживании. В тоже время, кто угодно > может выставить какой-угодно реферер и посмотреть на картинки. а как тогда бороться? только через мультипарт? сначала и хотел сделать через него, но не смог победить, плюнул и сделал так.. > AZ> open (DATA, "$main::ipacsum -f\"$pic\" ". > AZ> 'such a use. Sorry for any inconveniecies.'), end_html; > AZ> } > AZ> exit; > AZ>} -- wbw, kaiser --- tin/1.4.4-20000803 ("Vet for the Insane") (UNIX) (Linux/2.4.6 (i686)) * Origin: e-will (2:5005/58.88) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.cgi.perl/25271a6cd12a9.html, оценка из 5, голосов 10
|