Главная » Полезные статьи » Язык PHP » Скрипт показа баннеров на PHP4
Распечатать статью

Скрипт показа баннеров на PHP4

Скрипты показа баннеров, изложенные в этой статье довольно элементарны. Описания баннеров, количество кликов и показов хранится в текстовом файле, поэтому наличия MySQL не требуется.

Для начала создадим файл, в котором будем хранить всю информацию. Назовем его database.txt. Файл будет содержать записи следующего формата:
URL1|IMG1|NAME1|WH1|SHOW1|CL1
URL2|IMG2|NAME2|WH2|SHOW2|CL2

Где эти мистические слова означают следующее:
URL — ссылка баннера, куда будет переходить пользователь по клику;
IMG — имя файла изображения, которое будет выводится на экран;
NAME — alt-текст изображения;
WH — строка вида WIDTH=XX HEIGHT=XX, ширина и высота изображения; если все изображения одного размера, соответственно можно упростить скрипт;
SHOW — показы баннера, пишем изначально 0;
CL — клики по баннеру, пишем тоже 0;

Разделим логику на два файла. Один файл будет отвечать за показ баннера, назовем его banner_show.php, другой — за учет кликов по баннеру, назовем его banner_click.php. Пишем baner_show…

Сначала надо загрузить файл, в котором хранится описание баннеров:
$array_bann = file (‘database.txt’);

Потом — инициализируем генератор псевдослучайных чисел, выбираем случайную запись из считанного файла, разделяем ее на элементы через признак «|» и заносим их в массив $data_bann.
srand((double)microtime()*1000000);
$pos = rand(0,sizeof($array_bann)-1);
$data_bann=explode («|», $array_bann[$pos]);

Далее выводим на экран собственно сам баннер на основе данных из массива $data_bann;
echo ««;
echo « echo «ALT=’$data_bann[2]‘ $data_bann[3] border=0>
«;

Увеличиваем счетчик показов баннера на единицу.
$data_bann[4]++;

Склеиваем измененную запись и записываем весь массив в файл;
$array_bann[$pos]=join(‘|’,$data_bann);
$fp= fopen (‘database.txt’,»w»);
flock($fp,3);
fwrite ($fp, join(»,$array_bann));
fclose ($fp);
?>

Теперь займемся файлом banner_click.php. Открываем файл с данными.
$array_bann = file (‘database.txt’);

В переменной $banner — у нас уже переданный из html-файла номер баннера, по которому кликнули. Берем запись, соответствующую этому номеру, опять разделяем ее на кусочки через «|» и заносим это в массив $data_bann.
$data_bann=explode («|», $array_bann[$banner]);

Увеличиваем счетчик показов на единицу, склеиваем запись обратно в $array_bann.
$data_bann[5]=$data_bann[5]+1;
$array_bann[$banner]=join(‘|’,$data_bann).»\n»;

И записываем изменненный массив в файл database.txt.
$fp= fopen (‘database.txt’,»w»);
flock($fp,3);
fwrite ($fp, join(»,$array_bann));
fclose ($fp);

Отфутболиваем пользователя по адресу, хранящемуся в переменной $data_bann[0];
header(«Location: http://$data_bann[0]«);
?>

В заключение хочется добавить, что от накрутки кликов можно некоторым образом защитится, используя запись кукисов в одном скрипте и считывание их в другом.

Источник:   codingrus.ru

Вы можете оставить комментарий, или обратную ссылку на Ваш сайт.

Оставить комментарий

Похожие статьи