Создаю баннерную систему, проблема в том что незнаю как реализовать учёт просмотр баннеров на других сайтах. То есть при посещении страницы, с неё должен быть отправлен запрос на 'главный сайт', который по id добавлял бы в базу данных +1 просмотр.
ты же баннер запрашиваешь. вот там и считай +1 === запрос на сркипт. сркипту в переменную баннер. сам баннер в мемкеш. работает быстро...
<img src="http://mysystem/banner.php?uid=123"> banner.php //получить ИД баннера по ИД юзера // провериит в кеше // если нет, зачитат с диска и положит в кеш // отдать картинку // баннер += 1 === только напрямую с БД не работайте. пишите промедуточные данные в кеш или редиску, а от туда по хрону раз в минуту, к примему, доставайте, апдейдите БД и чистите.
Спасибо за пример. Вопрос ещё по одному, отдать возврат на запрос картинки каким примерно образом осуществить. То есть в фаиле banner.php делаю запрос по uid, после совпадения также выбераю один из баннеров. После чего как мне лучше передать её?
Что-то не получается. Кому не сложно можете скинуть пример скрипта, по обработке запроса. Заранее благодарен!
Только не понятно Вам нужно в ответ вернуть правильный src картинки? <img src="http://mysystem/banner.php?uid=123"> чтобы отображалась картинка или же передать сам файл? если src то проблем 0 return 'полный путь 1 из файлов' и все а если возвращать файл то <? header('Content-Type: application/octet-stream; charset=utf-8'); header('Content-disposition: attachment; filename="'.$filename.'"'); if(file_exists($filename)){ $fp=fopen($filename,"r")); $length=filesize($filename); $contents=($length?fread($fp,$length):""); fclose($fp); }else $contents= ""; echo $contents; ?>
Я хотел написать скрипт такого вида. <a href="http://www.mysite.ru/banner.php?url=yes&uid=1"><img src="http://www.mysite.ru/banner.php?uid=1"></a> Фаил banner.php обрабатывал бы на стороне img и выдавал бы баннер по uid. Проблема у меня с выводом рисунка баннера.
"Беда" в том что как отдать картинку. banner.php получает uid $id = int($_GET['uid']); после вставляем в звпрос SELECT .... from ... where id=$id; а дальше как прописать?
такой же тип как у того содержимого баннера, которое было до того, как ты его потребил в свою систему =)
Как вот такая реализация? Скрипт banner.php <?php if ( isset( $_GET['id'] ) ) { // Здесь $id номер изображения $id = (int)$_GET['id']; if ( $id > 0 ) { $query = "SELECT `mymetype`, `banner` FROM `banners` WHERE `id`=".$id; // Выполняем запрос и получаем файл $res = mysql_query($query); if ( mysql_num_rows( $res ) == 1 ) { $image = mysql_fetch_array($res); // Отсылаем браузеру заголовок header("Content-type: ".$image['mymetype']); // Передача баннера echo $image['banner']; } } } ?>
угу только надо не $id = (int)$_GET['id']; а $id=intval($id); $query = "SELECT `mymetype`, `banner` FROM `banners` WHERE `id`= $id LIMIT 1"; if ( mysql_num_rows( $res ) == 1 ) { на if ($res !== false) { кажется остальное все именно так. соотв тут и считай показы
да все то же самое. просто один скрипт отдает контент (уже юзеру), а второй - хтмл-оснастку (сайту) =)