Мы используем iframes для показа рекламы на нашем сайте.
Iframes используются, чтобы позволить нам отделить код генерации рекламы и другие модули сайта.
Поскольку мы отслеживаем показ объявлений на нашем сайте и должны иметь возможность вести точный подсчет того, какой тип страницы получает какие просмотры, я должен гарантировать, что пользователи не смогут просто скопировать и вставить iframe в какое объявление загружается на другой сайт. Это может привести к завышению количества объявлений для этой страницы, и это число не будет соответствовать количеству просмотров страницы, в которой будет отображаться iframe.
Прежде чем кто-либо скажет: нет, я не могу просто сравнить количество просмотров страниц с количеством просмотров объявлений или использовать количество просмотров страниц * количество объявлений на странице, так как количество объявлений на странице не обязательно будет статичным.
Мне нужно найти решение, которое позволит показывать рекламу только для фреймов, которые генерируются динамически и отображаются на наших страницах.
Я не знаком с сессиями PHP, но из того небольшого чтения, которое я успел сделать, приемлемым решением кажется следующее:
Добавьте "s = session_id ()" к источнику iframe объявления.
В коде, который получает и обрабатывает запросы объявлений, возвращают (и считают) только объявления, если s == session_id ().
Пожалуйста, поправьте меня, если я ошибаюсь, но это обеспечит:
Объявления будут возвращаться только в те фреймы, чей src был сгенерирован вместе с остальным содержимым страницы, как в случае обычного использования.
Мы можем вернуть наш логотип для рекламных вызовов с неверным идентификатором session_id.
Таким простым примером будет:
Одна из наших страниц:
<?php session_start(); ?>
<div id="someElement">
<!-- EVERYONE LOVES ADS -->
<iframe src="http//awesomesite.com/ad/can_has_ad.php?s=<?php echo session_id(); ?>></iframe>
</div>
Объявление / can_has_ad.php:
<?php session_start(); ?>
if($_GET['s'] == session_id()){
echo 'can has ad';
}
else{
echo '<img src="http://awesomesite.com/images/canhaslogo.jpg"/>';
}
И, наконец, скопированный код со статическим параметром 's':
<!-- HAHA LULZ I WILL SCREW WITH YOUR AD VIEW COUNTS LULZ HAHA -->
<iframe src="http//awesomesite.com/ad/can_has_ad.php?s=77f2b5fcdab52f52607888746969b0ad></iframe>
Это дало бы им iframe, показывающий логотип нашего удивительного сайта, а не пошло бы вразрез с нашими показателями просмотра.
Я сделал несколько базовых тестовых случаев: два файла, один, который генерирует iframe и выводит его, а другой, на который указывает src iframe, проверяет параметр 's' и показывает соответствующее сообщение в зависимости от результата. Я скопировал iframe в файл и разместил его на другом сервере, и было отображено правильное сообщение (не может содержать рекламу).
Итак, мой вопрос:
Это сработает, или я являюсь нубом из PHP-сессии, а приведенный выше тест - случайностью?
Спасибо за ваше время!
Редактировать:
Я пытаюсь решить эту проблему, не касаясь SQL-сервера, так как остальная часть сайта очень интенсивно использует SQL, и я не хочу добавлять нагрузку на и без того скрипучий SQL-сервер ...