Вопрос про счетчики (техническая сторона)

12
S
На сайте с 13.07.2007
Offline
56
1070

Вот есть на сайте счетчик (js с картинкой). При открытии картинки идет запрос к скрипту сбора статистики, обрабатывается и ... . А какой заголовок возвращает сервер? Как он отдает картинки с интересующими нас циферками? И как это отослать с помощью php, если использовать header нельзя (выдается сообщение, что заголовки уже посланы)?

Shtogrin
На сайте с 02.11.2006
Offline
95
#1
solnikolay:
И как это отослать с помощью php, если использовать header нельзя (выдается сообщение, что заголовки уже посланы)?

Включить буферизацию или выдавать заголовки в начале скрипта.

solnikolay:
Как он отдает картинки с интересующими нас циферками?

Возьмите какой - нибудь готовый счетчик и переделайте для себя

http://www.hotscripts.com/PHP/Scripts_and_Programs/Counters/Image_Based/index.html?action=formsubmit&listing_sorting_order=hits&listing_sorting_direction=des

www.shtogrin.com (http://www.shtogrin.com/). Канцтовары (http://www.invit.com.ua/). 1С Бухгалтерия (http://account.kiev.ua/).
Progr@mmer\.
На сайте с 14.10.2007
Offline
44
#2

вот что тебе нужно:


// запускаем буферизацию
ob_start();

// отдаём заголовок картинки (*.png формат)
//
// Header("Content-type: image/png") для PNG
// Header("Content-type: image/jpeg") для JPEG
// Header("Content-type: image/gif") для GIF

header ("Content-type: image/png");

// закрываем буферизацию и отдаём документ
ob_end_flush();

И будет счастье :)

В идеале - ob_start() запускаем в начале документа, а - ob_end_flush() в конце

Вашей девушке не хватает романтики? Черпните её на сайте «Я Люблю Романтику» (http://iloveromantics.ru/). Романтический форум (http://forum.iloveromantics.ru/) для отдыха от нудной работы.
Progr@mmer\.
На сайте с 14.10.2007
Offline
44
#3

Shtogrin, опередил на пару минут...

S
На сайте с 13.07.2007
Offline
56
#4
Shtogrin:
Включить буферизацию или выдавать заголовки в начале скрипта.

Чет не совсем догнал, причем тут буфферизация. Html-документ уже загружен, в нем находится картинка, при загрузке этой картинки идет запрос к php-скрипту, который записывает статистику и отдает графическую картинку. Вот и интересует, КАК он в уже загруженный документ ее отдает.

T
На сайте с 11.07.2007
Offline
43
#5
solnikolay:
КАК он в уже загруженный документ ее отдает.

сервер при запросе страницы отдает html + js.

js исполняется в браузере, и в результате исполнения браузер получает хтмл код с тегом картинки, потом браузер обращается по адресу из этого тега к скрипту счетчика (а не к странице на которой счетчик). Счетчик выполняет свое дело и отдает браузеру заголовок с типом данных соот. формату картинки, затем, в теле ответа отдает бинарные данные картинки...

solnikolay:
в нем находится картинка

Не, в нем только html + js...

Progr@mmer\.
На сайте с 14.10.2007
Offline
44
#6
solnikolay:
Чет не совсем догнал, причем тут буфферизация. Html-документ уже загружен, в нем находится картинка, при загрузке этой картинки идет запрос к php-скрипту, который записывает статистику и отдает графическую картинку. Вот и интересует, КАК он в уже загруженный документ ее отдает.

Я надеюсь скрипт с счётчиком у тебя на сайте? Не на другом сервере?

А вставлять буфферизацию нужно в PHP-код вывода счётчика, чтоб не было проблем с заголовками.

Shtogrin
На сайте с 02.11.2006
Offline
95
#7
solnikolay:
Чет не совсем догнал, причем тут буфферизация. Html-документ уже загружен, в нем находится картинка, при загрузке этой картинки идет запрос к php-скрипту, который записывает статистику и отдает графическую картинку.

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

solnikolay:

Вот и интересует, КАК он в уже загруженный документ ее отдает.

Никак. Это просто отдельный запрос.

Второй совет со списком готовых решений для вас подойдет больше. На примере станет проще понять.

S
На сайте с 13.07.2007
Offline
56
#8
Progr@mmer\.:
Я надеюсь скрипт с счётчиком у тебя на сайте? Не на другом сервере?
А вставлять буфферизацию нужно в PHP-код вывода счётчика, чтоб не было проблем с заголовками.

Ну вот тебе пример кода счетчика, работа которого меня интересует:


<!-- InetLog -->
<script language="javascript">
document.write('<a href="http://syte.ru/" target="_top"><img width=88 height=31 src="http://syte.ru/?r='+escape(document.referrer)+'&pg='+escape(window.location.href)+'" alt="InetLog.ru - статистика сайта" border=0></a>');
</script>
<!-- /InetLog -->

Вот каким методом он отдает заголовок?

Shtogrin
На сайте с 02.11.2006
Offline
95
#9
solnikolay:
Ну вот тебе пример кода счетчика, работа которого меня интересует:

А где серверная часть? Т.е. PHP скрипт который обрабатывает запрос

http://syte.ru/?r='+escape(document.referrer)+'&pg='+escape(window.location.href)+'

Progr@mmer\.
На сайте с 14.10.2007
Offline
44
#10

Узнать отдаваемые заголовки можно двумя способами:

1. Посмотреть скрипт

2. Посмотреть, что скрипт отдает браузеру.

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

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий