Internet и CGI

§1. Загрузка ресурса IMG.


Задача.

Вы хотите, чтобы на вашей HTML-странице, случайным образом, загружались бы графические изображения, перечень которых может постоянно изменяться и пополняться.

Решение.

Используем атрибут SRC эленента IMG для загрузки CGI-ресурса:

<IMG src="../cgi-bin/rand_imgages.cgi">.

Надо отметить, что этот прием достаточно часто используется в Web-программировании. Все сложности сводяться к написанию премлемого CGI-скрипта, который отвечал бы поставленной задаче. В качестве наглядного примера приведем давольно простой скрипт, обеспечивающий случайный вывод изображения из ограниченного списка графических файлов:

#!/usr/bin/perl $path = "c:/apache/htdocs"; @pic=('c0.gif','c1.gif','c2.gif','c3.gif','c4.gif','c5.gif','c6.gif','c7.gif','c8.gif'); srand; $id=int(rand(9)); $gif=$path.'/images/'.$pic[$id]; print "Content-Type: image/gif\n\n"; open G,$gif; binmode( G ); binmode( STDOUT ); print <G>; close G; exit;

Для полноты картины приведем и текст HTML-страницы:

<html> <head> <title>Copyright 2002 The Web Production</title> </head> <body> <b>TOP</b> Text text ......<br><br> <center> <IMG SRC="../cgi-bin/rand_imgages.cgi"> </center> <br> <b>BOTTOM</b> Text text ......<br><br> </body> </html>

В этом примере видно, что дизайн может быть реализован отдельно от загружаемых изображений (но, с учетом их ширины и высоты) и может изменяться независимо от CGI-сценария и независимо от CGI-программиста. Более сложный вариант CGI-программы, обеспечивающий случайный выбор из переменного списка изображений, должен включать код открытия обособленной директории файлов изображений:

... ... ... $DIR_PICTURES = $path.'/picturies'; opendir (ETC, $DIR_PICTURES)die "no directory!: $!"; $i=0; foreach $filename (readdir(ETC)) { if($i > 1){ $k=$i-2; $my_pic[$k]=$filename;} $i++;} close (ETC); $leng=@my_pic; srand; $id=int(rand($leng)); $gif=$path.'/images/'.$my_pic[$id]; ... ... ...

В этом скрипте, имена файлов заносяться в массив @my_pic, причем для пропуска точек (. и ..) в верхей части директории, выполняется условый оператор в зависимости от значения счетчика (переменная $i).

В заключение отметим, что элемент IMG и сответствующий CGI-сценарий часто используются в качестве скрытых счетчиков посетителей страниц. Такие скрипты могут также содержать процессы MAIL, которые позволяют, в сою очередь, известить владельца о посещении страницы визитером, имеющего такой-то IP-адрес, зашедший с такой-то страницы и т.п.



Содержание раздела