edogs, а на мой вкус интеллектуальная работа (фактически, поиск) с графикой - жуткий гемор. "Пятно" - вообще не вариант: отсутствие банера может (и должно) рвать верстку. К тому же мало ли какие еще эл-ты могут меняться динамически? Да хоть другие банеры. Значит, надо все файлы выкачивать... По точному вхождению - хороший вариант, надежный. Но медленный.
И все-таки я бы сначала поработал с вариантом на JS. Он ощутимо проще, и обладает некоторыми преимуществами.
Progr@mmer., а че тут думать-то? :)
Нафига грузить свой сервак рендерилкой, если куча пользователей уже любезно установили себе разные хорошие браузеры? Давайте используем их мощности :)
Выдаете примерно такой код:
<script type="text/javascript">document.write('<img src="http://bn.com/banner.php?params..." id="bn_banner" />');window.onload = function () { var i_banner = document.getElementById('bn_banner'); try { var l = 0, t = 0, n = i_banner; while (n) l += n.offsetLeft, t += n.offsetTop, n = n.offsetParent; // получаем координаты картинки var v = l > 0 && t > 0 && i_banner.clientHeight > 0 && i_banner.clientWidth > 0 ? 1 : 0; }catch (e) { var v = 0; // картинка не нашлась } i_counter.src = 'http://bn.com/counter.php?h=' + document.location.host + '&v=' + v; // отправляем результат на сервер}</script>
Т.е. подгружаете еще одну картинку (1*1 пиксел), передавая на сервер данные о размере и позиции банера. Надежное кроссбраузерное решение - ищите сами, думаю, если подолбиться полдня, оно-таки найдется. Код можно разбавить всяким мусором, маскируя под настоящий счетчик (ну там, инфа о разрешении и глубине цвета, реферер и т.д.), дабы скрыть свои истинные намерения.
Далее, серверным скриптом counter.php собираем статистику по хостам, откуда приходит нолик, и в случае необходимости смотрим вручную. Кроме того, надо бы с сервера иногда проверять наличие и корректность самого кода-проверяльщика. Его, кстати, можно подгружать и со своего сервера (если конечно веб-мастера не побоятся - я бы побоялся).
В принципе это все можно обойти - при желании и работающей голове. Например, заслонить банер каким-нибудь абсолютно спозиционированным блоком. Позиционирование других эл-тов относительно банера (и их z-index) тоже можно проверять скриптом, но код разрастется.
Если решите делать - поделитесь результатом, интересно.
--Assa--, Вы-таки изменили файл :)
У меня обе версии сохранились, одна работает (22 375 байт), другая нет (22 143 байт).
--Assa--, кажется, проблема с самим файлом. Если напрямую открыть вот так, все равно не читается.
Попробуйте пересохранить другой программой.
О, уже заработало :) В чем проблема была?
юни, а я-то чего? Я за веб-строительством приглядываю, а тут другие люди командуют. Симаков вон в начале ветки пофлудил немного, и скрылся куда-то. Так что пока веселитесь.
P.S. Лично с моей честью Принцесса ничего такого не делала - ни с модераторской, ни с обычной...
юни, проснулся! Колготки уже обсудили, клонов спалили... конец уж почти )
Пришел Дэвид Блейн и сотворил дубль!
10 аватар.
[Подписался на тему]
Jefa, ШАНС-ON, moldu, а где вы такие классные аватары надыбали?!
Кто такой Путин? Это который теперь вместо Зубкова-Пиписькина?