UpMark -  System of Professional Certification
UpMark - Система Сертификации Специалистов. Пройди тест - получи сертификат.   система
система тестирование
UpMark : CGI для начинающих : Сделать стартовойСделать закладку
 CGI для начинающих


  1. Как работает "случайный" URL?


  2. А как сделать "случайную" картинку?


  3. Как c помощью CGI-программы показать картинку?


  4. Иногда требуется удалить из файла все HTML тэги. Как
    это сделать?


  5. Как сделать чтобы банеры, на странице, менялись?


  6. Как сделать счетчик?










  1. Как работает "случайный" URL?


  2. Проще всего, оформить это, как CGI-программу. Сразу, стоит оговориться,
    что URL не совсем случайный, он случайный…, но из вашего списка. Формат
    списка простой и может пополняться либо в ручную, либо другими программами.

    Пример файл LINKS.LST:
    http://www.tsu.ru/
    
    http://www.netscape.com/
    http://www.microsoft.com/

    CGI-программа на Perl ( rurl.pl ):
    #!/usr/local/bin/perl
    
    # случайный URL
    open (FILE, "@url = ();  
    # прочитали файл в массив, один элемент массива - одна строка из файла
    close (FILE);
    srand ( time );
    $index = int ( rand ( $#url + 1 ) );  
    # получили случайное число в интервале от 0 до $#url + 1
    print "Location: ", $url<$index>, "

    "; 
    exit;

    Фрагмент вызова программы в HTML-файле:
    Случайный URL



  3. А как сделать "случайную" картинку?



  4. В принципе, можно использовать программу RURL.PL (см. "Как работает
    "случайный" URL?"). Отличия будут только в файле с URL и в способе вызова
    программы из HTML-файла.

    Пример файл LINKS.LST:
    http://www.myhost/pics/img01.gif
    
    http://www.myhost/pics/img02.gif
    http://www.myhost/pics/img03.jpg

    Фрагмент вызова программы в HTML-файле:

    Внимание! Этот способ не очень хорошо подходит для демонстрации рекламных
    банеров. Хотя, в некоторых случаях можно использовать и эту программу.
    : )



  5. Как c помощью CGI-программы показать картинку?



  6. Иногда необходимо выводить картинку ИМЕННО CGI-программой. Как это
    сделать? Предположим у нас есть картинка (в директории cgi-bin) - my_lg01.jpg.

    Фрагмент CGI-программы (show_img.pl) на Perl:
    #!/usr/local/bin/perl
    
    open(FILE, "print "Content-type: image/jpeg

    ";
    binmode( FILE );
    binmode( STDOUT );
    while (read(FILE, $data, 4096)) {
            print $data;
    }
    close(FILE);

    Вызов из HTML-документа будет выглядеть так:



  7. Иногда требуется удалить из файла все HTML тэги. Как
    это сделать?



  8. Можно воспользоваться многочисленными программами конвертирующими HTML
    в различные форматы. Можно самому написать маленькую программку.

    Пример на Perl:
    #!/usr/local/bin/perl
    
    open(IFILE, "<$ARGV<0>");
    @line = ();
    close(IFILE);

    $all_lines = join( "", @line);
    $all_lines =~ s/<(<^>>*)>//g;

    open(OFILE, ">$ARGV<1>");
    print OFILE $all_lines;
    close(OFILE);

    Фрагмент этой программки можно использовать в CGI-программах для удаления
    HTML тэгов (например в Guest Book или Message Board)



  9. Как сделать чтобы банеры, на странице, менялись?



  10. Проще всего воспользоваться такой приятной возможностью многих Web-серверов,
    как SSI (Server Side Includes). Сервер, перед тем как послать HTML-документ
    пользователью, разбирает его сам и выполняет некоторые "вставки" и только
    после этого отдает документ пользователю. Чаще всего, документы с такими
    "вставками" имеют тип .shtml, но это не обязательно. Для примера,
    я написал простенькую программу случайного выбора банера из списка.
    #!/usr/local/bin/perl
    
    # banner.pl
    $banner<0> = `"`;
    $banner<1> = `"`;
    $banner<2> = `"`;
    $banner<3> = `"`;
    $banner<4> = `"`;

    srand(time);
    $index = int(rand($#banner+1));
    print "Content-type: text/html

    ";
    print $banner<$index>;
    exit;

    Вызов в HTML-документе:

    Вызов из html-файла может осуществляться разными способами. Это зависит
    от сервера, его настроек и т.д. Приведу несколько видов вызова.
    [an error occurred while processing this directive]
    
    [an error occurred while processing this directive]
    [an error occurred while processing this directive]

    P.S. Ротацию банеров моджно сделать и для обычного .html, но это слегка
    сложнее.




  11. Как сделать счетчик?



  12. Очень простой счетчик можно написать если вы используете SSI (Server
    Side Includes) на вашем Web-сервере. Большинство современных серверов поддерживают
    SSI и отазываться от этого не стоит, тем более, что в отличии от графически
    счетчиков, приведенный ниже, работает несмотря на то, включен у пользователя
    "Automatically load images" или нет.
    #!/usr/local/bin/perl
    
    use SDBM_File;

    sub O_CREAT { 0x0100 }
    sub O_BINARY { 0x8000 }
    sub O_RDWR { 0x0002 }

    # Через | в нижестоящей строке можно перечислить
    # IP адреса компьютеров которые не должны изменять счетчик
    $exclude_addr = `127.0.0.1|194.226.48.11`;

    # Для некоторых серверов нижестоящая
    # строка не обязательна (а иногда и нежелательна)
    print "Content-type: text/html

    ";

    tie(%counter, "SDBM_File", `counters`, O_RDWR|O_CREAT|O_BINARY, 0666);
    if ($ENV{`REMOTE_ADDR`} !~ /$exclude_addr/) {
            $counter{$ENV{`QUERY_STRING`}}++;
    }
    print $counter{$ENV{`QUERY_STRING`}};
    untie(%myhash);
    exit;

    В этом примере я не стал разбирать QUERY_STRING, проверять наличие ключа
    в базе и т.д. Но все это наворачивается без особых трудозатрат и вообще
    желательно. Все ваши счетчики будут накапливаться в директории /cgi-bin/
    - файл counters.pag(.dir) или counters.db. Вызов из HTML-файла:
    [an error occurred while processing this directive]

    Для разных серверов этот вызов может варьироваться. Мне известны еще и
    такие варианты:
    [an error occurred while processing this directive]
    
    [an error occurred while processing this directive]



© Upmark.ru


Отзывы:
отзывов пока нет, ваш будет первым!

Оставьте свой отзыв:
Ваше имя:

Ваш отзыв о "CGI для начинающих":

контрольный код:




Смотрите также:
  • CGI для начинающих
  • Как и куда вкладывать деньги?
  • 1. Введение в Реляционные Базы Данных
  • 2. SQL: Краткий Обзор
  • 3. Использование SQL Для Извлечения Информации из Таблиц

    Вы читали "CGI для начинающих"
  •   

    © 2004—2012 UpMark ltd
    регистрация  |  тесты  |  библиотека  |  каталог сайтов  |  контакты