Автор Тема: Подскажите как написать, а то я не селен в перле..  (Прочитано 2647 раз)

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

Оффлайн AndyAN

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 83
  • +0/-0
  • 0
    • Просмотр профиля
    • http://localhost
Доброе время суток !  :(
Подскажите незнающему человеку, как написать, форму закачки фотографий для этого скрипта, код внизу, сам скрипт выводит каталоги указанные в файле, тоесть
1<#>Авто<#>
2<#>Спорт<#>
3<#>Катикатры<#>

ну и так далее, цифра это каталог а по-русски это описание каталога, ну я думаю вы мне поняли....

#!d:/perl/bin/perl.exe

sub by_numf {(($sl{$a}<=>$sl{$b}));}
sub by_numr {(($sl{$b}<=>$sl{$a}));}

$script_name="index.cgi";
$content_dir="d:/e-love/www/pics";
$content_url="http://e-love.loc/pics";
$adv_dir="/home/sites/www.e-love.ru/web/adv";
$view_file="!template.html";
$next1="Страницы:";

if($ENV{\'REQUEST_METHOD\'} eq \'POST\'){sysread (STDIN,$query,$ENV{\'CONTENT_LENGTH\'});}
else{$query=$ENV{\'QUERY_STRING\'}}chomp $query;@querys=split \'&\',$query;%query;
foreach(@querys){if(/(.+)=(.+)/){$query{$1}=$2;}}

$nav="";
$menu="";
$prevnext="";
$title="Картинки";
$content="";

open f,"!cat";
@t=;
close f;
foreach(@t){chomp;@tmp=split \'<#>\';$nav.="   $tmp[1]
      $tmp[2]

";}
$nav="

$nav

";

if($query{r} ne \'\')
        {
        foreach(@t)
                {
                chomp;
                @tmp=split \'<#>\';
                if($tmp[0] eq $query{r})
                        {
                        $title="$tmp[1]";
                        if($query{n} eq \'\'){$query{n}=1;}
                        @list=glob"$content_dir/$query{r}/*.gif";
                        push(@list,glob"$content_dir/$query{r}/*.jpg");
                        push(@list,glob"$content_dir/$query{r}/*.png");
                        push(@list,glob"$content_dir/$query{r}/*.bmp");
                        if(@list)
                                {
                                %sl;
                                foreach(@list){if(~/(\\d+)/){$sl{$_}=$1;}}
                                @list=sort by_numr @list;
                                $cnt=1;
                                foreach(@list)
                                        {
                                        if($query{n}==$cnt){$menu.=" $cnt ";}
                                        else{$menu.=" $cnt ";}
                                        $cnt++;
                                        }
                                if($query{n}>1){$prev=$query{n}-1;$prevnext=" предыдущая ";}
                                else{$prevnext=" предыдущая ";}
                                $prevnext.="  ";
                                if($query{n}<$cnt-1){$next=$query{n}+1;$prevnext.=" следующая ";}
                                else{$prevnext.=" следующая ";}
                                $menu="

$menu

";
                                if($list[$query{n}-1]=~/.+\\/(.+)$/){$src="$content_url/$query{r}/$1";}
                                else{$src="";}
                                $content="";
                                }
                        else
                                {
                                $content="

В этом разделе нет картинок

";
                                }
                        }
                }
        }

open f,"$view_file";
@out=;
close f;

foreach(@out)
        {
        $_=~s/<\\!--title-->/

$title<\\/p>/gi;
        if($_=~/(<\\!--)(.+\\.txt)(-->)/)
                {
                open f,"$adv_dir/$2";
                @t=;
                close f;
                $_=~s/$1$2$3/@t/;
                }
        }

if($menu ne \'\'){foreach(@out){$_=~s/<\\!--pictures_menu-->/$menu/gi;}}
if($prevnext ne \'\'){foreach(@out){$_=~s/<\\!--prevnext_pic-->/

$prevnext<\\/p>
/gi;}}

if($content ne \'\')
        {
        open f,"!cat";
        @t=;
        close f;
        foreach(@t){chomp;@tmp=split \'<#>\';$chmenu.="$tmp[1]
";}

        foreach(@out)
                {
                $_=~s/<\\!--picture-->/$content/gi;
                $_=~s/<\\!--chmenu-->/

Картинки<\\/b><\\/center>$chmenu
/gi;
                $_=~s//

$next1<\\/p>/gi;
                }
        }
else        {foreach(@out){$_=~s/<\\!--picture-->/$nav/gi;}}

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

Подскажите за больше спасибо
---------
Заранее все благодарен

С уважение AndyAN

Оффлайн Mog.

  • Фанат форума
  • Ветеран
  • *****
  • Сообщений: 828
  • +0/-0
  • 0
    • Просмотр профиля
Цитировать
как написать, форму закачки

Тут одной формой не обойдёсьси, тут цельный скрипт для закачки нужон. Поскольку, ты верно заметил, что  
Цитировать
сам скрипт выводит каталоги указанные в файле

 Так что читай faq там все расписано.
Все болезни от нервов, только сифилис от удовольствия

Оффлайн AndyAN

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 83
  • +0/-0
  • 0
    • Просмотр профиля
    • http://localhost
А где хоть сам скрипт закачки хороший или фак для написание его можно найти.. ????
С уважение AndyAN

Оффлайн Chs

  • Perl программер
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1108
  • +0/-0
  • 2
    • Просмотр профиля
    • http://chs.now.at/
2B OR NOT 2B = FF

 

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