Как потоковое изображение из PHP для целей отслеживания - PullRequest
0 голосов
/ 03 февраля 2012

Благодаря партнерскому маркетингу и PHP я знаю, как сделать пиксель отслеживания следующим образом:

<img alt="" src="http://example.com/pixel.php?tracking=43233" />

Затем в pixel.php я делаю что-то вроде:

<?php

$sTrack = @ $_GET['tracking'];
$sTrack = urldecode($sTrack);
$sTrack = strip_tags($sTrack);
$sTrack = trim($sTrack);
// do something with sTrack here
header('Content-type: image/gif');
readfile('images/invisible.gif');

Проблемана этой странице предложения я получаю cname и cemail в качестве параметров запроса в URL, и клиент размещает на чем-то, что не поддерживает PHP, но позволяет мне вставить Javascript, и я CAN'T используйте jQuery в этом случае.Вместо этого мне нужно сделать это в 100% чистом Javascript.Поэтому я не могу прочитать $ _GET, чтобы подобрать cname и cemail.

Я знаю, что location.search даст мне эти параметры.Мне просто нужно, как изменить тег IMG, чтобы, как и при событии загрузки, я мог передать location.search в конце.И мне нужно, чтобы он работал во всех браузерах начиная с IE7 и выше, а также в Opera, Safari и Chrome.

Ответы [ 2 ]

1 голос
/ 03 февраля 2012

Вы можете просто использовать http://example.com/pixel.php в качестве img src, а затем проверить реферал в этом PHP-скрипте.

1 голос
/ 03 февраля 2012

Используйте Javascript для установки источника изображения.

<body onload="document.getElementById('tracking_pixel').src='http://example.com/pixel.php'+location.search;">
    <img id="tracking_pixel" src="" />
</body>

Редактировать:

Да, вы можете сделать его короче, поместив его в загрузку IMG.Вы даже можете удалить идентификатор и ключевое слово this.Тем не менее, вы не можете иметь исходный src, чтобы быть пустым, на самом деле, это должно быть допустимое изображение для него, чтобы вызвать событие onload.Проблема в том, что вы несете стоимость запроса по сети.

Вот самое короткое, что я мог собрать, вместо повторения URL-адреса, я использовал +=, но это означало, что обработчик нагрузки долженбыть очищенным.

<body>
    <img src="http://example.com/pixel.php" onload="onload=''; src+=location.search;" />
</body>

В качестве альтернативы, вы можете использовать данные URI.К сожалению, URI данных всего для 1 пикселя довольно длинный.

<body>
    <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAC0lEQVR42mNgAAIAAAUAAen63NgAAAAASUVORK5CYII=" onload="src='http://example.com/pixel.php'+location.search;" />
</body>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...