Задать вопрос
Ответы пользователя по тегу Интернет-реклама
  • Как написать модуль показа баннеров?

    @Naps
    Если не нравится RAND()
    То можно так:

    Создаём таблицу:
    CREATE TABLE `banners` (
    `id` INT( 10 ) NOT NULL ,
    `img` VARCHAR( 100 ) NOT NULL ,
    `click` INT( 10 ) NOT NULL ,
    `show` INT( 10 ) NOT NULL ,
    `url` VARCHAR( 100 ) NOT NULL ,
    `alt` VARCHAR( 100 ) NOT NULL ,
    UNIQUE (
    `id`
    )
    ) 
    


    banner.php (надо инклюдить в основной код):
    <?php
    $default_url='http://habrahabr.ru'; //Сюда перенаправляем по дефолту 
    
    function generate_banner(){  //Генерирует код баннера
    	$banner=mysql_fetch_array(mysql_query("SELECT id, img, alt FROM banners ORDER BY show ASC LIMIT 1"));
    	mysql_query("UPDATE banners SET show=show+1 WHERE id='$banner[id]'");
    	$banner="<a href='banner.php?go=1'><img src='$banner[img]' alt='$banner[alt]' /></a>";
    	return $banner;
    }
    function banner_go($id){ //Редирект + проверка на клик за сессию
    	global $default_url;
    	if(preg_match('[^0-9]',$id)){
    		$banner=mysql_query("SELECT url FROM banners WHERE id='$$id'");
    		if(mysql_num_rows($banner)>0){
    			$banner=mysql_fetch_array($banner);
    			$default_url=$banner[url];
    			if($_SESSION[banners][$id][click]!=true){
    				$_SESSION[banners][$id][click]=true;
    				mysql_query("UPDATE banners SET click=click+1 WHERE id='$banner[id]'");
    			}
    		}
    	}
    	header("Location: $default_url");	
    }
    if(isset($_GET[go])){
    	banner_go($_GET[go]);
    }
    ?>
    


    Проверка на клик по конкретному баннеру за сессию. Баннеры показываются по очереди.
    Ответ написан
  • Как написать модуль показа баннеров?

    @Naps
    Насчёт защиты от накруток не знаю, а в остальном.
    Например:
    в БД таблица banners
    Столбцы: id, img, url, show, click (значение объяснять не нужно надеюсь)
    В cms пишем что-то вроде:
    $banner=mysql_fetch_array(mysql_query("SELECT img,id FROM banners ORDER BY RAND() LIMIT 1 "));
    mysql_query("UPDATE banners SET show=show+1 WHERE id='$banner[id]'");
    $banner="<a href='banner.php?go=$banner[id]'><img src="$banner[img]" alt='Баннер' /></a>";
    


    В banner.php по аналогии.
    1)Фильтруем $_GET[id] для защиты от инъекций.
    2)Проверяем по кукам или в сессии, кликал ли товарищ по баннеру до этого. Если нет, прибавляем единичку в графу click. Пишем куки или в сессию, что по такому то баннеру, товарищ уже кликал.
    3)Редиректим товарища по url из базы.

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