|
Исходники
Статьи
Языки программирования
.NET Delphi Visual C++ Borland C++ Builder C/С++ и C# Базы Данных MySQL MSSQL Oracle PostgreSQL Interbase VisualFoxPro Веб-Мастеру PHP HTML Perl Java JavaScript Протоколы AJAX Технология Ajax Освоение Ajax Сети Беспроводные сети Локальные сети Сети хранения данных TCP/IP xDSL ATM Операционные системы Windows Linux Wap Книги и учебники
Скрипты
Магазин программиста
|
Скрипт показа баннеров на PHP4.Скрипты показа баннеров, изложенные в этой статье довольно элементарны. Описания баннеров, количество кликов и показов хранится в текстовом файле, поэтому наличия MySQL не требуется. Для начала создадим файл, в котором будем хранить всю информацию. Назовем его database.txt. Файл будет содержать записи следующего формата: URL1|IMG1|NAME1|WH1|SHOW1|CL1 URL2|IMG2|NAME2|WH2|SHOW2|CL2 ... Где эти мистические слова означают следующее:
Разделим логику на два файла. Один файл будет отвечать за показ баннера, назовем его 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 "<a hrefєnner_click.php?banner=$pos target=_blank>"; echo "<IMG SRC='$data_bann[1]'"; echo "ALT='$data_bann[2]' $data_bann[3] border=0></a>"; Увеличиваем счетчик показов баннера на единицу. $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]");
?>
В заключение хочется добавить, что от накрутки кликов можно некоторым образом защитится, используя запись кукисов в одном скрипте и считывание их в другом. |
Форум Программиста
Новости
Обзоры
Магазин Программиста
Каталог ссылок
Поиск
Добавить файл
Обратная связь |