Отправляет email-рассылки с помощью сервиса Sendsay

Веб-дизайн. Вопросы и ответы.

  Все выпуски  

Веб-дизайн. Вопросы и ответы. # 39 (119) Dweb.ru


Информационный Канал Subscribe.Ru

WEB-дизайн. Вопросы и ответы.
# 39 (119)
28 октября 2002г.
Проект сайта "AGS Design" Dweb.ru
   GoldHost.ru    Jobus.ru    DwebHost.ru
кол-во подписчиков - 16000


    В этом выпуске:

  • Задать вопрос.
  • Вопросы.
  • Вопросы и ответы.
  • Наши проекты.
  • Ах, баннеры, баннеры…
  •   Ссылки Вебмастеру:

  • Иконки и кнопки
  • Flash и Photoshop
  • Gold Хостинг
  • Анимация, 3D и графика
  • Скрипты (CGI,JS,Applet)
  • Фоны
  • Форум
  • Best Хостинг
  • Web-дизайн
  • Обменные сети

  • Доброе время суток!

    Задать вопрос в рассылку можно ТОЛЬКО на сайте http://dweb.ru, вписываете свой вопрос в форму для Обратной связи (правая колонка) и отсылаете. Вопрос публикуется уже в ближайшей рассылке.

    Вопрос публикуется только один раз (из-за ограничения размера выпуска и огромного кол-ва вопросов)
    Вопросы не относящиеся к тематике рассылки и присланные на е-мейл публиковаться НЕ БУДУТ.
    Маленькая просьба. Если Вы пишете автору ответа, чтобы он уточнил какие-либо детали, то цитируйте в письме вопрос и ответ полностью.


    Свои вопросы Вы можете задать на нашем Форуме.

    Последние темы форума:
  • зачем при регистрации мне показывают картинку с текстом?
  • Нужен совет по ПХП »Как вывести содержимое файла в textarea
  • В чем лучше делать PHP скрипты
  • скрипт отправки файла на мыло
  • по Photoshop »почему картинки в ВЕБ квадратные?
  • Работаем с CrelDraw11
  • FLASH »обрезание, вырезание, нарезание, отрезание ...
  • Не прописывается фоновый рисунок
  • Формулы! »Помогите вставить формулы на странички!
  • Как сделать? »пунктирный и точечный разделитель?
  • MP3 топы »для вебмастеров работающих с mp3
  • GoldHost.ru - Золотой Хостинг Без Ограничений!
  • Рассылка "WEB-Дизайн, азы"
  • Моральный облик ВебМастера



    Ах, баннеры, баннеры…


    Не секрет, что в наше время Интернет-странички просто переполнены графикой. Без этого уже трудно представить себе какой-нибудь популярный проект. Часть этой графики является дизайном сайта, и с этим мы предпочитаем мириться. Другая часть - это баннеры, рекламная информация других сайтов в виде графической (часто даже анимированной) картинки. Это иногда раздражает, иногда выводит из себя, а иногда может оказаться полезным, так как хорошо сделанный баннер привлекает внимание и к себе и к екламируемому ресурсу. Но в этой статье разговор пойдет не о самих баннерах, а о системах управления ими.

    Если вам удалось сделать хороший, полезный и посещаемый Интернет-проект, значит, вы неизбежно сталкивались с баннерами. Часто другие Web-мастера сами предлагают обмен, иногда самому хочется поставить свой баннер на каком-либо ресурсе. Но в любом случае очень полезно иметь информацию о том, сколько раз Ваш баннер был показан и показывается ли он вообще. Это избавит от необходимости раз в неделю (день, месяц, год…) проверять, работает ли ваш баннер на чужом сайте или давно удален. Конечно, обойтись средствами HTML тут просто невозможно, поэтому приготовьтесь программировать. Хорошо бы для программирования выбрать один из языков, работающих на стороне сервера. Это избавит посетителя от постоянного перекачивания к браузеру массы информации, причем при каждом посещении.

    Предлагаю Вам попробовать несложный скриптовый язык программирования РНР. Самое главное, что Вам обязательно понадобится - это поддержка РНР Вашим сервером, где расположен Ваш сайт. Без этого, к сожалению, ничего не получится. Но PHP - язык распространенный, и поддерживается он большинством серверов в сети, за исключением очень многих бесплатных.

    Первое, что надо сделать - это определиться с кодом Вашего баннера и с самим баннером. Код выглядит, как правило так:

    <a href="http://myhost.com"><IMG SRC="http://myhost.com/baner.gif" alt="Мой баннер" border="0">

    Конечно, это только шаблон, но с него мы сможем построить то, что нам будет нужно. А нужно нам будет знать, сколько раз показывается тот или иной баннер на определенном сайте. И желательно - время последнего показа. Для этого надо выделить один файл, который будет работать базой данных. Структура сайта выглядит следующим образом - каждая строчка соответствует одному из сайтов, на котором показывают Ваши баннеры. Разделителем между строками является, как и обычно, перевод строки. Разделителем в самой строке между информационными данными можно выбрать символ ^ (это на клавиатуре Shift+6). Этот символ не встречается в адресной строке браузера, и нам очень даже подходит.

    Структуру строки файла базы данный выберем вот так:

    Адрес ^ время последнего посещения ^ количество посещений

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

    <a href="http://myhost.com"><IMG SRC="http://myhost.com/baner.phtml?id=1" alt="Мой баннер" border="0"></a>

    Как видите, поменялось имя файла и добавился параметр id. Теперь вызывается не непосредственно сам баннер, а скрипт baner.phtml, который и ведет статистику показов и времени посещения. В конце скрипта должен обязательно быть переход на баннер вот в таком виде:

    header ("Location: baner.gif");

    Теперь давайте перейдем к вопросу о ведении статистики. Несложно сделать просто подсчет показов, так как задача эта тривиальна - достаточно считать в массив базу данных посещений, и затем увеличить на 1 ячейку массива с индексом, соответствующим переменной id. Это наш идентификатор. Но у нас более сложная задача - организовать возможность просмотра всей статистики в дальнейшем и запоминать время последнего показа баннера. Значит, надо записывать в базу и время, и адрес сайта, с которого вызывается баннер. Адрес мы будем запоминать только для того, что бы в дальнейшем можно было узнать статистику показов, а в самой процедуре подсчета он не участвует.

    Итак, начали. Наш скрипт, прежде всего, должен проверить на правильность полученную переменную $id. Если она не больше установленного значения и не меньше ноля, то все нормально, иначе присваиваем переменной id ноль, или выводим сообщение об ошибке. Кому как нравится. Значение переменной id с индексом ноль нужно специально зарезервировать для таких вот ошибок, и всегда будет ясно - кто-то разместил не правильный код или допустил в нем ошибку при наборе. Но, если же все нормально, а так чаще всего и будет, скрипт должен считать в память файл с базой данных:

    $adds = "url.txt";
    $txt = file($adds);


    Вся информация оказывается в массиве с именем $txt. Идентификатор указывает на тот индекс, где в массиве расположены данные сайта, с которого вызван баннер. Обратиться к этим данным очень просто:

    $str = trim(str_replace ("\n","", $txt[$id]));

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

    list ($add, $time, $counter) = split ("^", $str);

    Вот тут нам и пригодился наш разделитель. Все, вся информация извлечена, теперь ее надо обновить и записать обратно. Собственно, нужно просто увеличить переменную $counter на единицу, считать текущее время и присвоить переменной $time его значение. Если со счетчиком все ясно, то время требует пояснения. Лучше и проще всего считывать его в Unix-овском формате. Полученное значение будет равно количеству секунд, прошедшему после 1 января 1970 года. Ну, так уж принято, хоть и немного странно для простого пользователя. Но, нам важно, что это число секунд очень легко преобразуется в дальнейшем в конкретные даты, а хранить его очень просто, так как это, по сути, просто большое число. Его получить можно так:

    $time = time(void);
    $counter++;


    Заодно увеличили показания счетчика. Все - теперь осталось только записать всю информацию обратно. Суммируем строку, и заносим полученное значение в нужную ячейку массива (напомню, на нее указывает идентификатор в переменной $id):

    $txt[$id] = $add."^".$time."^".$counter."\n";

    И тут тоже не забываем про наш разделитель и про перевод строки в конце для правильного считывания в дальнейшем. Осталось только записать весь массив в файл с базой данных, но для этого его надо сначала объединить в одну строку:

    $str=implode("", $txt);
    $fp = fopen($adds, "w");
    if ($fp) { $fw = fwrite($fp, $str); fclose($fp); }


    Вот и все, так как все поставленные нами задачи мы выполнили. Я намеренно не приводил всего кода скрипта целиком, а только по пунктам объяснял все шаги как можно подробнее. Я хотел бы, что бы Вы не занимались бездумным копированием, а постарались самостоятельно развить предложенные тут идеи. Но, что бы хоть как то компенсировать отсутствие в статье готового скрипта, я предлагаю Вам готовый скрипт вывода статистики на экран. Для этого достаточно вызвать в браузере файл stat.phtml. Вот его код:

    <?
    $adds = "url.txt";
    $txt = file($adds);

    $i = 0;
    while ($i <= count($txt)):
    $temp = trim(str_replace ("\n","", $txt[$i]));

    list ($add, $time, $counter) = split ("^", $str);
    echo $add." - ".$counter." : ".$time."<br>";

    $i++;
    endwhile;
    ?>

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

    Андрей Кухарчик, virtualphp@tut.by
    http://virtual.bresttelecom.by



    Вопросы

  • 3059. Скажите как проще перенести базу данных MySQL с одного сервака на другой, доступ ко всем имею полный, думаю построчная передача будет не эффективной. программирую я на РНР. Ответить.

  • 3060. Где и как можно скачать облочку под Perl, Php Ответить.

  • 3061. Как сделать, чтобы флеш-ролик на определенной странице переходил на нужный кадр? Например:
    - на странице index1.html переходил на 5-й кадр
    - на странице index2.html переходил на 6-й кадр
    - на странице index3.html переходил на 7-й кадр Ответить.

  • 3062. Как нужно сконфигурировать apachе, чтобы он нормально обрабатывал запросы для wap браузеров, т.е. другими словами как сделать wap сайт. Я кинул на сервере в папку с wml файлами файл .htaccess
    CharsetDisable On
    CharsetDisableAcceptCharset On
    CharsetBadAgent " "
    DirectoryIndex /index.wml
    RemoveHandler .wml
    AddType application/x-httpd-php .wml
    Через эмулятор wap браузера все документы отображаются и выполняются нормально, а вот если попытаться зайти с телефона, то он выдает что тип контента не поддерживается илт content type received in gateway was not requested by the client. В чем может быть проблема проблема? Ответить.

  • 3063. У кого-нибудь есть скрипт whois, желательно для всех зон? Ответить.

  • 3064. Кто может дать скрипт на ПХП что бы он брал данные из файла и сверял с данными, что ввел юзер при правильном он его впускал на страницу при неправильном отсылал обратно. Ответить.

  • 3065. Скиньте кто-нибудь ссылку на скрипт links 2.0 (для добавления категорий и ссылок), где его можно скачать, а то в яндексе никак не могу найти. Ответить.

  • 3066. Существует ли для php что-нибудь вроде дебагера, чтобы можно было построчно прогонять скрипт и следить за изменениями переменных? Как можно вообще проверить скрипт на наличие багов и ошибок, если он имеет большой размер, и например содержит классы? Ответить.

  • 3067. Почти всем известно, что в Яваскрипт для принудительной загрузки картинки в кэш используется функция new Image(). Я написал такой скрипт (простой):
    img_8=new Image;img_8.src="img/8_.jpg";
    img_chm=new Image;img_chm.src="img/chm_.jpg";
    img_bds=new Image;img_bds.src="img/bds_.jpg";
    и для неё функцию:
    function over(img,ref){ document.images[img].src = ref; }
    function out(img,ref) { document.images[img].src = ref; }
    Где передаю img -- имя картинки, а ref -- её новый адресс.
    На моём компьютере всё работает (видимо потому, что картинки быстро из памяти догрудаются), а после закачки на сервер и работы из интернета, картинка загружается каждый раз при действиях onMouseOver="over('chm','img/chm_.jpg')" и onMouseOut="out('chm','img/chm.jpg')". Т.е. принудительная загрузка не работает, почему??? Может я что-то не так делаю??? Ответить.

  • 3068. У меня такой вопрос: из таблицы на одной странице по якорю делается переход на соответствующую запись в другой таблице на другой странице. Примерно, так: на 1-ой странице - <td align="center"><a href="file1.html#metka1">Метка ќ 1</a><br></td> и на 2-ой странице - <td align="center"><a name="metka1">Метка ќ 1</a></td>

    Подскажите, пожалуйста, как сделать, чтобы метка, на которую перешли, как-нибудь выделилась, например, цветом. Ответить.

  • 3069. Нужна программа для создания карты сайта... Ну типа одна картинка, т.е. один гиф... а на ней можно делать несколько ссылок Ответить.

  • 3070. Где-то в глубинах моего мозга есть воспомининие о том, что где-то когда-то я читал, что можно текст в html располагать двумя колонками, не напомните этот тег? Ответить.


  • x. Пожалуйста сделайте мне кнопку: фон: синий текст: OlsenLeyla и все. Вышлите мне потом код кнопки! Зарание огромное спасибо. Я уже знаю что Вы согласитесь Вы же добрые. Ответить.

  • x. Кто сможет мне сделать баннер, для моего сайта http://xrust.net.ru, можно для любой тематики нашего сайта... Тогда ваш баннер будет рекламироваться на нашем сайте в рубрике таком в каком вы сделаете баннер(ы) или в сети XBN. Ответить.


    Вопросы и ответы

  • 3053. Какой код лучше использовать для полужирного курсива? <em> и <snrong> или <b> и <i>. Вы предлогаете <b> <i>. В литературе рекомендуют их использовать ограничено?
    Ответ прислал Ivanov Vasya.
    <b> и <i> - Стандартные теги HTML. Никогда не глючат. А <em> и <strong> - помоейму, прописывают только такие программы, как "Front Page" и "Dream Viewer". Используй <b> и <i> - 100% будет работать.
    Ответ прислал Горький Юрий.
    Лучше всего через стили:
    .class {
       font-style: italic;
       font-weight: bold;
    }
    Ответ прислал Агапов Александр.
    В какой литературе? Тэги B и I официально одобрены ECMA и всеми применяются, EM и STRONG - нет.

  • 3054. Не подскажет кто програмульку для конвертации html в pdf.
    Ответ прислал Alexey N. Vinogradov.
    Берёшь HTML и перетаскиваешь его в Adobe Acrobat. Acrobat нужен полный (не Acrobat Reader).
    Ответ прислал Dioxis.
    Ставишь себе AcrobatReader 5 в нем есть такая штука как Distiller, устанавливается как принтер, а потом отправляешь на печать... и получаешь пдф-ку.

  • 3055. Вопрос по CSS: имеется ли в стилях что-либо подобное атрибуту тэга <TD> - valign?
    Ответ прислал Max Alexeev.
    Ну в CSS2 есть "vertical-align". Можно, например к TD применить "vertical-align: top; "
    Ответ прислал Artyom4D.
    Ты просто создай класс допустим temp. В классе указываешь
    .temp {
         vertical-align : middle;
         text-align : center;
    }
    Соответственно первое выравнивает по вертикали а второе по горизонтали. А потом просто пишешь <TD class="temp">
    Ответ прислал Alexey N. Vinogradov.
    td { vertical-align: (baseline | sub | super | top | middle | bottom | text-top | text-bottom); }
    Ответ прислал Grigory SHASTUN.
    vertical-align - способ вертикального выравнивания в ячейках таблицы. Значения:
    процентное;
    top - по верхнему краю;
    middle - по центру;
    bottom - по нижнему краю;
    baseline - по первой строке текста в ячейке.

  • 3057. Скрипт Account Manager LITE после заполнения формы "amform.htm" отправляет мне и администратору на емейл как положенно данные, а потом предлогает скачать его (скрипт) на винт стандартным виндовым диологом :( В чем дело? Атрибут CHMOD стоит правильно... Все бы ничего, но, как я думаю из-за этого не доконца регистрируются пользователи... И еще вопрос по поводу этого скрипта. Доступ к файлим в закрытой директории происходит через авторитизацию в вылетающем окне. А можно ли сделать это же авторитизацию через поля на html на главной странице?
    Ответ прислал Крючков Вадим Александрович.
    Я не знаю на чем написан этот скрипт, но судя по всему расширение этого скрипта не проассоциированно на сервере с обработчиком. Например, если скрипт написан на пхп и имеет расширение phtml (стандартно прописываются расширения php), то в файле .htaccess должна быть строчка AddType application/x-httpd-php .phtml

  • 3058. Я создал базу в Mysql. Заполнил ее и пытаюсь сделать поиск.
    CREATE TABLE price (
    id smallint(3) unsigned DEFAULT '0' ,
    parent char(3) DEFAULT '0' ,
    name tinytext ,
    price varchar(100)
    );
    Вот запрос:
    SELECT * FROM price WHERE (name LIKE '%кщл%')
    Выдаёт несколько строчек, в которых нет таких сочетаний букв и в помине.
    Посмотреть можно на http://medimarket.ru/ Поиск в прайс-листе попробовать повводить всякую ерунду (на некоторые запросы не выводит ничего, а на некоторые выводит несоответствующие строки)
    Не могу понять почему?
    Ответ прислал MuToGeN.
    MySQL требует для некоторых вещей языковых настроек. Может быть, и тут оно надо... Еще, что скорее всего, что-нибудь на пути от HTTP-запроса до готового HTML-кода преобразует кодировку. Например, веб-сервер.
    Ответ прислал intelex_lviv.
    Перед запросом надо преобразовать строки - убрать слеши. спец. знаки и т.п. Кроме того нужно преобразовивать все записи или в прописние или строчние символи. Так как MySQL различаєт их.
    Ну и наконец самое главное! Поиск то нужно не запросом по слову давать - а обрабативать масиви комбинаций слов. Наиболее простой способ - это разделять строку и искать вхождения подстрок...... Короче - советую зайти на http://www.infocity.kiev.ua - там есть статья об этом :-)
    Ответ прислал Master.
    Установлена неправильная кодировка в mysql
    Ответ прислал Sergej Ehrenburg.
    Vo-pervich ispol'zuj dlja 'name' type varchar, ekonomish' mesto v base.Vo-vtorich uberi skobki.
    Ответ прислал Крючков Вадим Александрович.
    Как всегда - проблема с русским языком :( поставь у поля name атрибут - binary)




  • Клуб друзей
    * Описание лучших спонсоров - платящие в страны СНГ. Для начинающих вебмастеров.
    * Best Free Games - Все о лучших бесплатных играх интернета.
    * Раскрутка и создание сайта - Заработок в сети. Онлайн тесты. Игры. Юмор.
    * В помощь изучающим английский - Ссылки на ресурсы про английский, рассылка.
    * Материал по заработку в сети - Халява и программы, для заработка.
    * Строительство дач - домов, коттеджей, бань и т.д. в Подмосковье (100$ кв.м)
    * New Image School of Graphic Design - дистанционное обучение в канадс. колледже.
    * 25-ая Монета - Интеллектуальная онлайн-игра в духе "О, счастливчик!"
    * Обменные сети с выкупом показов.
    В "Клуб друзей" может попасть любой сайт. Ссылки вращаются по КРУГУ постоянно. Как в рассылке, так и на сайте. Правила.



    ICQ - Клуб


    Адрес Клуба http://dweb.ru/1/icq.htm

    Если у Вас возник вопрос по дизайну, графике, скриптам и т.п. То Вы в любой момент можете его задать на странице Клуба любому консультанту находящегося в on-лайне.

    Для тех, кто может, а главное хочет поделиться своими знаниями, Вы можете вступить в наш Клуб, для этого присылайте # ICQ, Имя, E-mail, Город, и темы по которым возможна консультация.

    Авторам

    Вы хотите, чтобы ваши статьи были опубликованы в рассылках 'Веб-Дизайн, азы' и 'Веб-Дизайн. От А до Я'? Если вы считаете, что можете написать о дизайне, скриптам, графике и т.п., если Вам есть что сказать и о чем рассказать, я буду рад сотрудничеству с Вами. Присылайте свои предложения и статьи.
    Давайте вместе делать общее дело! Присылайте свои соображения, мысли, истории... поделитесь своим опытом.
    В качестве гонорара Вы получите несколько строк под Вашей статьёй, для рекламы/описания Вашего сайта.
    Буду рад сотрудничеству.


    Давыденко Дмитрий.     Dweb.ru   GoldHost.ru   JobUs.ru   DwebHost.ru

    © 2000-2002 Copyright by Dweb.RU
    Копирование материалов рассылки возможно только в случае явного указания на сайт "Dweb.RU" как на источник информации. При этом обязательно явное указание адреса: http://dweb.ru/


    http://subscribe.ru/
    E-mail: ask@subscribe.ru
    Отписаться
    Убрать рекламу

    В избранное