Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » [решено] Создание динамического юзербара на php

Ответить
Настройки темы
[решено] Создание динамического юзербара на php

Аватара для Artem-Samsung

Ветеран


Сообщения: 823
Благодарности: 53

Профиль | Сайт | Отправить PM | Цитировать


Изменения
Автор: Artem-Samsung
Дата: 27-10-2008
Описание: Поправил орфографию. Дописал о шрифтах. Заметки администратору. Недостатки. Генератор цвета. Редактор: Coutty
Мой самый первый урок
Оставляйте, пожалуйста, не только отзывы, но и критику.
Урок так же оформлен в моем блоге:
При копировании урока, прошу упомянуть мой источник:
http://deykun.com/?articles=7




Урок. Создание Динамического юзербара на php

Динамические свойства юзербара, создание которого сейчас будет рассматриваться, заключается не в анимации, а в изменении его внешнего вида в зависимости от программного кода. Таким образом, юзербар приобретает кроме внешней красоты, над которой вы пошаманите в Photoshop, свой собственный интеллект (конечно относительно).
Это может быть как обычный отсчет времени от или до какого-то события, определение ip, операционной системы или браузера пользователя, прогноз погоды, да и все, что угодно! Ограничениями будут являться только ваша фантазия и знания программирования.
Вашему вниманию предлагается самого простого динамического юзербара, в которой может разобраться любой человек. Даже умение программировать на php не потребуется. Я специально приведу кроме основной схемы еще и простейшие шаблоны программного кода, вы можете совсем просто настроить его под себя.
Урок разрабатывался специально для userbars.ru, где значительная часть посетителей - дизайнеры, поэтому на всех технических моментах буду останавливаться очень подробно, и пусть меня простят программисты, для которых всё это может показаться скучным и примитивным.

У вас нет навыков работы в php и от веб-технологий вы далеки?
Тогда этот урок рассчитан и на вас. У вас всё получится, если будете строго следовать уроку, а мои подробные объяснения нацелены на то, чтобы вы осознавали свои действия и, в случае чего, могли переделать всё под себя. Что ж, приступим.

Ход работы

1. Подготовка.
2. Создание юзербара в графическом редакторе.
3. Подготовка инструментария.
4. Создаем скрипт-файл.
4.1. Комментарии относительно шрифтов.
5. Сохранение и размещение.
6. Первый результат.
7. .htaccess.
8. Конечный результат.

1. Подготовка

Нам понадобятся:

* Хостинг - www.ho.ua
* FTP client - Total Commander
* Editor - Notepad++

Теперь остановимся на каждом подробнее.

Веб-сервер

Для начала, нам потребуется хостинг. Т.е. дисковое пространство с поддержкой php.
Файлообменники или бесплатные галереи в данном случае не подойдут, т.к. на них мы можем закачать только статическое изображение. Наша же картинка будет каждый раз меняться, т.е. создаваться заново индивидуально для каждого пользователя серверным приложением.
Что делать, если своего веб-сервера у вас нет, а оплачивать хостинг совсем не хочется? Есть множество бесплатных хостингов, но я остановился на выборе www.ho.ua

Заполняем форму:


На e-mail приходит активация.
Активируем и получаем логин с паролем.


FTP-client (FTP клиент)

Для того, что бы управлять файлами на хостинге, воспользуемся Total Commander’ом: http://www.ghisler.com
Заходим в утилиту управления FTP-соединением. Ctrl+F.
Жмем кнопку «Добавить». И заполняем все поля значениями, которые выслали нам на е-мейл



Добавилось новое FTP соединение. Выбираем его из списка, жмем кнопку «Соединиться» и получаем доступ к файлам.

Editor (Текстовый редактор кода)
Мы будем работать с программным кодом и вручную, поэтому воспользуемся программой Notepad++( http://notepad-plus.sourceforge.net/ru/site.htm) которая красиво подсвечивает код php.
Скачиваем, устанавливаем и запускаем программу. В меню Синтаксис активируем поле - PHP.

2. Создание юзербара в графическом редакторе

Создаем растровое изображение размером 350 x 19. Всё зависит от ваших мастерских умений в Photoshop. По созданию юзербаров любой сложности можно найти очень много уроков, в этом уроке не буду подробно останавливаться на данном вопросе.
Единственное, что вам нужно рассчитать, это место для графического элемента, желательно с каким-то однотонным фоном. Таким элементом в моем уроке будет выступать обычный текст.

У меня получилось:


Я оставил место между машиной и логотипом “007” специально для текста, который будет оповещать о долгожданной премьере фильма.

3. Подготовка инструментария
Речь идет об инструментарии нашей серверной оболочке.
Рассмотрим все элементы, с которыми нам предстоит работать.

Файл шрифта
Скачиваем шрифт Visitor
http://www.dafont.com/visitor.font

Файл со скриптом
Это файл, который будет содержать программный код для генерации графического изображения. Находиться он должен, только на сервере.
В моем конкретном случае, место этом файлу в директории htdocs.

.htaccess -файл дополнительной конфигурации веб-сервера Apache. На хостинге который я выбрал, такой файл уже существует в директории htdocs . Если ваша цель – хранить на том хостинге только юзербары, то можете созданный файл почистить.
Копируем себе с FTP на жесткий диск файл .htaccess и открываем его блокнотом, или же другим специализированным редактором. У меня для таких целей служит – Notepad++. Если вы хотите заняться динамическими юзербарами всерьез и надолго, то не поленитесь, скачайте и установите.

Уже составленный список программного обеспечения:
Photoshop, Total Commander, Notepad ++.

4. Создаем скрипт
Открываем блокнот: Файл - Создать. Копируем код:

Код: Выделить весь код
<?php 
header("Content-type: image/jpeg"); 
 $im = @ImageCreateFromJPEG ("userbar.jpg") ; 
 $color = imagecolorallocate($im, 255, 255, 255); 
$element = " Since 31.10.2008"; 
 imagettftext($im, 10, 0, 45, 13, $color, "Visitor TT2 -BRK-.ttf",  $element); 
 imagejpeg($im, NULL, 100); 
 imagedestroy($im); 
 ?>
Как видим со скриншота, я вас не обманываю, все действительно просто:


Сделаем небольшие пояснения по программному коду того, что вам нужно изменить для того, чтобы создать юзербар под свои потребности.

$im = @ImageCreateFromJPEG ("userbar.jpg") ;
Это переменная с адресом изображения, на который будем накладывать свой эффект. У меня это userbar.jpg, который находится в одной папке со скриптом. Если у вас скрипт в корневой директории, а картинка в папке images, то путь будет таким:

$im = @ImageCreateFromJPEG ("images/userbar.jpg") ;

$color = imagecolorallocate($im, 255, 255, 255);
Переменная с цветом. Если вы немного разбираетесь в RGB, то понимаете, что это белый.
Подробней об RGB.
Сгенерировать код нужного цвета.

К примеру, вам нужен черный цвет. Тогда наша строчка будет иметь такой вид:
$color = imagecolorallocate($im, 0, 0, 0);
Зеленый: $color = imagecolorallocate($im, 0, 255, 0);
Синий: $color = imagecolorallocate($im, 0, 0, 255);
Красный: $color = imagecolorallocate($im, 255, 0, 0);

$element = " Since 31.10.2008";
Это строковая переменная (в рамках урока рассматриваем только строковые), в которой должно содержаться то, что мы собираемся выводить на экран.

imagettftext($im, 10, 0, 45, 13, $color, "Visitor TT2 -BRK-.ttf", $element);
Накладываем текст, который содержится в переменной $element.
Где 10 – размер шрифта, 0 – угол поворота картинки, 45 – смещение от левого края, 13 – смещение от верхнего края картинки, Visitor TT2 -BRK-.ttf – шрифт.

imagejpeg($im, NULL, 100);
Вывод картинки на монитор. 100 – максимальное качество изображения. Так как мы создаем небольшой юзербар, то мелочиться с качеством не стоит.

4.1. Шрифт

Программный код php обрабатывается на сервере специальным модулем php в Apache2, и на выходе мы получаем готовый продукт. В основном генерируется html-код, но в нашем случае - картинка.
Поэтому не нужно беспокоится о том, что у пользователя нет такого шрифта, вся процедура выполняется сервером, но как раз о наличии этого шрифта на сервере нам и нужно позаботиться.
Закачать шрифт нужно в нашем случае нужно в папку htdocs и указать к нему путь.
Путь указывается в программном коде в этой строке:
imagettftext($im, 10, 0, 160, 13, $color, "Visitor TT2 -BRK-.ttf", $ element);
В двойных скобках указываем точное местоположение шрифта. Если шрифт вы закачали в ту же папку, где и главный скрипт, то достаточно в точности скопировать имя файла шрифта. Если у вас много шрифтов, и для них вы выделили отдельную папку fonts, то адрес будет такой: "fonts/Visitor TT2 -BRK-.ttf"

Таким образом, настройка шрифта сводится к процедуре в два действия:
1. Закачиваем шрифт через Total Commander на сервер
2. Указываем точный путь файла

Как видим, указывается не просто название шрифта, а полный путь до него. Поэтому, даже для того чтобы использовать шрифт Arial, его нужно закачать на сервер

5. Сохранение и размещение
Если вы строго следовали уроку, то не занимались, ни сохранением, ни размещением php-скрипта, сейчас этим и займемся.

Сохраняем
В Блокноте: Файл – Сохранить как – Имя файла: userbarscript.php
У нас получился файл с расширением *.php
Если будете просматривать файл в Total Commander, обратите внимание, чтобы файл именовался чётко - userbarscript.php, а не userbarscript.php.txt к примру, в случае чего – переименуйте.

Размещаем
Просто скопируйте через Total Commander файл userbarscript.php в директорию вашего хостинга. Если необходимо будет сделать в скрипте изменение, копируйте обратно, изменяйте и заново заливайте – т.к. не всегда получится отредактировать файл непосредственно на сервере.

6. Первый результат
Если вы все сделали правильно, то уже сможете посмотреть свое творение по адресу вашего скрипта, в моем случае: http://artemhp.ho.ua/userbarscript.php

Мой результат:

Всё есть, и картинка, и текст. А вот расположение этого самого текста придётся поправить.

Изменяем
Код: Выделить весь код
imagettftext($im, 10, 0, 45, 13, $color, "Visitor TT2 -BRK-.ttf", $element);
на
Код: Выделить весь код
imagettftext($im, 10, 0, 160, 13, $color, "Visitor TT2 -BRK-.ttf", $ element);
И всё ровненько:


Это наш первый результат. Но не конечный, так как картинка имеет расширение “php”, а большинство движков форумов не поддерживают формат такой формат картинки . В тэгах [img][/img] мы её не увидим картинки.
Для того, чтобы обмануть браузеры, мы воспользуемся ещё одним файлом из нашего инструментария: .htaccess

7. .htaccess
Открываем .htaccess (желательно в Notepad++). Дописываем такие строки:

Код: Выделить весь код
RewriteEngine On 
RewriteRule userbar1.jpg userbarscript.php
Записью RewriteEngine On активируем модуль mod_rewrite
И делаем подмену. Как обычный ярлык во всех операционных системах userbar1.jpg – есть ярлыком на userbarscript.php.
Теперь все форумы и движки, видят нормально нашу картинку по адресу – http://artemhp.ho.ua/userbarscript.php

8. Конечный результат
В результате у нас получилось методами программирования создать кусочек графики, а здесь уж понятно, что можно творить всё что угодно. Были бы знания или друзья, которые помогут.
В созданном на этом уроке юзербаре динамику уловить сложно, текст статичен, поэтому в завершение, что бы совесть не мучила, приведу пример интересной возможности - определение ip-адреса.

Вместо:
Код: Выделить весь код
$element = " Since 31.10.2008";
пишем
Код: Выделить весь код
$element = "007 Agent IP: ".$_SERVER["REMOTE_ADDR"];
Получаем:


Если у вас получилось сделать юзербар по моему уроку с использованием программного кода php, сообщите. Вопросы, в случае их возникновения, будут обязательно рассмотрены в будущих редакциях статьи.
Можете поэкспериментировать с более сложными алгоритмами,

К примеру:

Вместо записи:
Код: Выделить весь код
$element = " Since 31.10.2008";
Вставляем нужный код алгоритма.

Отсчет времени с определенной даты
Дату - 2008-10-10. заменям на свою

Код: Выделить весь код
$last = "2008-10-10"; 
$now = time(); 
$res = $now - strtotime($last); 
$days = 0; 
while ( $res >= 86400 ) { 
    $days++; 
    $res -= 86400;
} 
$element = "Прошло - ".$days." дней";
Сколько дней осталось до определенной даты
2009-03-13 - заменям на свое.

Код: Выделить весь код
$f = "2009-03-13"; 
$now = time(); 
$res = strtotime($f)-$now; 
$days = 0; 
while ( $res >= 86400 ) { 
    $days++; 
    $res -= 86400;
} 
$element = " Осталось - ".$days." дней";
Замечания. Недостатки.
По ходу тестирования данного метода были замечены следующие недостатки:

Кэширование
Даже если на сервере картинка поменялась, то в браузере Opera вы этого не заметите, пока картинка находится в КЭШе (т.е. картинка запоминается браузером и не выкачивается второй раз с сервера для экономии трафика). Стандартно в Opera под КЭШ выделяется 24 мб, это значит, что при нормальном серфинге уже через день картинка должна обновиться.
Данный недостаток вышеописаного метода замечен только в Opera. Остальные браузеры картинку обновляют с сервера нормально.
Буду весьма признателен, если вы подскажете, как решить данную проблему.

На заметку администраторам
Если у вас свой собственный сервер, то вам нужно проверить наличие:
- Установленного и настроенного в Apache2 mod_rewrite. http://httpd.apache.org/docs/1.3/mod/mod_rewrite.html
- Наличие графической библиотеки GD2 для php
http://guzei.com/www/php/gd.php

Выбор хостинга
У вас все получилось. Полигон для испытаний ho.ua уже в прошлом. Вам рано или позно понадобится изменить хостинг или создали свой собственный сервер. Есть быстрый способ проверить, настроен ли он под наши потребности (создание динамических юзербаров).
(от Arrest)

Залейте в корень сайта файлы .htaccess и imgen.php со следующим содержанием:

Код: Выделить весь код
RewriteEngine on
RewriteRule ipr.gif imgen.php
imgen.php

Код: Выделить весь код
<?php 
error_reporting(7); 
$i = imagecreate(200, 100); 
$c = imagecolorallocate($i, 0, 0, 0); 
imagestring($i, 3, 0, 0, "Works!", $c); 
imagegif($i); 
?>
Всем спасибо.
Выношу огромную благодарность форуму forum.oszone.ru, forum.woweb.ru и ubforum.ru

Автор: Артем Дейкун
Редактор: Coutty, Igor_I
Координаты: http://deykun.com, artem@meta.ua

-------
Мой блог Web Development

Это сообщение посчитали полезным следующие участники:

Отправлено: 14:48, 17-10-2008

 

Ветеран


Сообщения: 1862
Благодарности: 132

Профиль | Сайт | Отправить PM | Цитировать


Молодец, еще бы русский подтянуть.
Пара моментов, @ ставится для подавления вывода ошибок. На время отладки скрипта можно удалить.
Шрифты, не факт что они уже будут, лучше залить самим.
И заодно, найти онлайн-сервис который показывает цвет соответствующий значениям RGB.

-------
ДИЛЕТАНТ - это курьезный человек, который испытывает удовольствие делать то, чего не умеет.
AMD 4200+, MSI Neo2Platinum, 2Gb, ATI 9600, D-Link DWL-G510, FreeBSD 8.0, KDE 4.3.4

Это сообщение посчитали полезным следующие участники:

Отправлено: 21:08, 17-10-2008 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для Coutty

Кот Ти


Сообщения: 7318
Благодарности: 1204

Профиль | Отправить PM | Цитировать


Да, с русским проблем довольно много. Нет смысла даже перечислять.
По поводу содержимого:
mod_rewrite не является стандартным расширением, поэтому его, возможно, придётся прикручивать к серверу самостоятельно (на локальной машине).
gd2 также не является стандартной библиотекой для php.
Также в той теме обсуждались вопросы кэширования. Возможно, стоит упомянуть
По поводу написания кода - стоит отдельно сказать, что перед открывающим тэгом <?php не должно быть никаких символов, иначе header'ы не отправятся.
Цитата Igor_I:
И заодно, найти онлайн-сервис который показывает цвет соответствующий значениям RGB. »
А лучше показать, как это делается в том же фотошопе Впрочем, урок рассчитан на дизайнеров, которые в программировании мало понимают, но разбираются в графике, т.ч. не обязательный пункт.

Artem-Samsung, в целом здорово Интернет нуждается в качественных и доступных для понимания уроках в любых областях. Хотя... Может у меня просто взгляд затуманен? Было бы интересно услышать отзывы от тех, кто с веб-программированием не сталкивался.
Это сообщение посчитали полезным следующие участники:

Отправлено: 21:32, 17-10-2008 | #3


Ветеран


Сообщения: 1862
Благодарности: 132

Профиль | Сайт | Отправить PM | Цитировать


Цитата Coutty:
mod_rewrite не является стандартным расширением, поэтому его, возможно, придётся прикручивать к серверу самостоятельно (на локальной машине).
gd2 также не является стандартной библиотекой для php. »
Кстати это верно.
Поэтому надо бы исправить.
Код: Выделить весь код
Нам необходимо:

* Веб-сервер - www.ho.com.ua
* FTP client - Total Commander
* Editor - Notepad++
Включив для веб-сервера необходимые модули.

-------
ДИЛЕТАНТ - это курьезный человек, который испытывает удовольствие делать то, чего не умеет.
AMD 4200+, MSI Neo2Platinum, 2Gb, ATI 9600, D-Link DWL-G510, FreeBSD 8.0, KDE 4.3.4

Это сообщение посчитали полезным следующие участники:

Отправлено: 21:55, 17-10-2008 | #4


Аватара для Artem-Samsung

Ветеран


Сообщения: 823
Благодарности: 53

Профиль | Сайт | Отправить PM | Цитировать


Цитата Igor_I:
Шрифты, не факт что они уже будут, лучше залить самим »
Дописал о шрифтах, спасибо

Цитата Coutty:
Да, с русским проблем довольно много. Нет смысла даже перечислять »
В школе почти не изучалось . Но сам понимаю, что это не отговорка, немного поправил.
В орфографии ошибок не должно быть, но может в каких то оборотах и будет. Нужно бы договорится с кем то, что бы помогал редактировать )

Цитата Igor_I:
найти онлайн-сервис который показывает цвет соответствующий значениям RGB »
Есть Добавил, но может еще какой то получше посоветуете?

Цитата Igor_I:
Включив для веб-сервера необходимые модули. »
Это рассчитано для продвинутых дизайнеров и любителей оригинальных узербаров, мало вероятность, что будут поднимать свой сервер, но все же дописал в конце "заметки для администратора"

Цитата Coutty:
вопросы кэширования »
Пока вроде не получилось решить, по этому добавил пункт с замечаниями

-------
Мой блог Web Development


Отправлено: 16:10, 18-10-2008 | #5


Аватара для Coutty

Кот Ти


Сообщения: 7318
Благодарности: 1204

Профиль | Отправить PM | Цитировать


Цитата Artem-Samsung:
В орфографии ошибок не должно быть, но может в каких то оборотах и будет. Нужно бы договорится с кем то, что бы помогал редактировать ) »
Отредактировал. Выслал в ПМ (выделил исправленные места полужирным). У меня получилось 150 исправлений орфографии, пунктуации и стиля. В следующий раз не возьмусь
Это сообщение посчитали полезным следующие участники:

Отправлено: 17:46, 18-10-2008 | #6


Аватара для Arrest

runs with scissors


Сообщения: 642
Благодарности: 77

Профиль | Отправить PM | Цитировать


Замечания
Я бы добавил еще "как проверить, готов ли сервер для создания":
Цитата:
Как проверить, готов ли ваш сервер для создания картинок? Залейте в корень сайта файлы .htaccess и imgen.php со следующим содержанием:
.htaccess:
Код: Выделить весь код
RewriteEngine on
RewriteRule ipr.gif imgen.php
imgen.php:
PHP код: Выделить весь код

<?php

error_reporting
(7);
$i imagecreate(200100);
$c imagecolorallocate($i000);
imagestring($i300"Works!"$c);
imagegif($i);
?>

Если появится картинка с надписью "Works" по адресу ipf.gif - значит все работает!
И, на закуску, ошибки:
Цитата:
кроме внешней красоты, над которой вы пошаманите в Photoshop, свой собственный интеллект (конечно относительно).
Глава 0, смещение 210
Цитата:
Речь идет об инструментарии нашей серверной оболочки.
Глава 3, смещение 0
Цитата:
В меню Синтаксис активируем поле "PHP".
Глава 1, смещение 1377(самый конец)
Цитата:
Total Commander,<пробел>Notepad ++
Глава 3, смещение 981

-------
- Why do you call this version of software 'beta'?
- Coz it's beta than nothing.


Последний раз редактировалось Arrest, 22-10-2008 в 15:55.

Это сообщение посчитали полезным следующие участники:

Отправлено: 11:25, 19-10-2008 | #7


Ветеран


Сообщения: 1862
Благодарности: 132

Профиль | Сайт | Отправить PM | Цитировать


Цитата Artem-Samsung:
В школе почти не изучалось . Но сам понимаю, что это не отговорка, немного поправил. »
Это почти не проблема. http://wiki.services.openoffice.org/...ваемые_вопросы.
Хотя есть все-таки места, которые не звучат. Именно из-за оборота.
Цитата Artem-Samsung:
Это рассчитано для продвинутых дизайнеров и любителей оригинальных узербаров, мало вероятность, что будут поднимать свой сервер, но все же дописал в конце "заметки для администратора" »
Вот уж нет, дело в том, что хостинг надо искать именно с этими модулями. Чтобы не было потом вопросов, "я скрипт закачал на сервер, а он не обрабатывается".
Цитата Artem-Samsung:
- Установленного и настроенного в Apache2 mod_rewrite. http://httpd.apache.org/docs/1.3/mod/mod_rewrite.html
Упоминаешь второй Апач, а ссылка ведет на первый. Где логика?
В 4 пункте код не совпадает с картинкой. Но это скорее всего - лень.
И заодно держи мою исправленную версию.

-------
ДИЛЕТАНТ - это курьезный человек, который испытывает удовольствие делать то, чего не умеет.
AMD 4200+, MSI Neo2Platinum, 2Gb, ATI 9600, D-Link DWL-G510, FreeBSD 8.0, KDE 4.3.4

Это сообщение посчитали полезным следующие участники:

Отправлено: 23:03, 19-10-2008 | #8


Аватара для Artem-Samsung

Ветеран


Сообщения: 823
Благодарности: 53

Профиль | Сайт | Отправить PM | Цитировать


Спасибо, попробую из того, что снаписал Аррест и Игорь в конце, пункт дополнительный "Самостоятельный выбор хостинга"

-------
Мой блог Web Development


Отправлено: 23:48, 19-10-2008 | #9


Аватара для Artem-Samsung

Ветеран


Сообщения: 823
Благодарности: 53

Профиль | Сайт | Отправить PM | Цитировать


Подправил. Дописал по методике Arrest'a "Выбор хостинга" и замечания Igor_I

Кстати, мой первый ученик уже создал юзербар :о))

Вот в этой темке презентовано: http://ubforum.ru/topic10756-15.html

Темку на форуме даже прикрепили

-------
Мой блог Web Development


Отправлено: 01:04, 27-10-2008 | #10



Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » [решено] Создание динамического юзербара на php

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Перенос системы с одного динамического диска на другой babki Microsoft Windows NT/2000/2003 6 24-06-2009 17:13
C/C++ - [решено] PHP. Fatal error: Function name must be a string in /var/www/index.php on line 15 Artem-Samsung Программирование и базы данных 6 29-11-2008 18:37
[решено] Apache 2.2.8 + Php 5.2.6 + MySQL 5.0.51b (win) - не работает php v0f41k Вебмастеру 4 11-05-2008 22:08
Создание динамического массива на Pascal-е Skynet Программирование и базы данных 3 09-10-2004 18:05
Создание динамического сайта Guest Вебмастеру 4 05-09-2003 13:58




 
Переход