ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > PHP, PERL, MySQL, JavaScript
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Создаем скрипт показа баннеров на PHP4
  #1  
Старый 09.02.2009, 09:16
Аватар для TreV@N
TreV@N
Участник форума
Регистрация: 14.07.2008
Сообщений: 117
Провел на форуме:
792994

Репутация: 104
По умолчанию Создаем скрипт показа баннеров на 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...

Сначала надо загрузить файл, в котором хранится описание баннеров:

PHP код:
<?
$array_bann 
file ('database.txt');
Потом - инициализируем генератор псевдослучайных чисел, выбираем случайную запись из считанного файла, разделяем ее на элементы через признак "|" и заносим их в массив $data_bann.

PHP код:
srand((double)microtime()*1000000);
$pos rand(0,sizeof($array_bann)-1);
$data_bann=explode ("|"$array_bann[$pos]); 
Далее выводим на экран собственно сам баннер на основе данных из массива $data_bann;

PHP код:
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>"
Увеличиваем счетчик показов баннера на единицу.

PHP код:
$data_bann[4]++; 
Склеиваем измененную запись и записываем весь массив в файл;

PHP код:
$array_bann[$pos]=join('|',$data_bann);
$fpfopen ('database.txt',"w");
flock($fp,3);
fwrite ($fpjoin('',$array_bann));
fclose ($fp);
?> 
Теперь займемся файлом banner_click.php. Открываем файл с данными.

PHP код:
<?
$array_bann 
file ('database.txt');
В переменной $banner - у нас уже переданный из html-файла номер баннера, по которому кликнули. Берем запись, соответствующую этому номеру, опять разделяем ее на кусочки через "|" и заносим это в массив $data_bann.

PHP код:
$data_bann=explode ("|"$array_bann[$banner]); 
Увеличиваем счетчик показов на единицу, склеиваем запись обратно в $array_bann.

PHP код:
$data_bann[5]=$data_bann[5]+1;
$array_bann[$banner]=join('|',$data_bann)."n"
И записываем изменненный массив в файл database.txt.

PHP код:
$fpfopen ('database.txt',"w");
flock($fp,3);
fwrite ($fpjoin('',$array_bann));
fclose ($fp); 
Отфутболиваем пользователя по адресу, хранящемуся в переменной $data_bann[0];

PHP код:
header("Location: http://$data_bann[0]");
?> 
В заключение хочется добавить, что от накрутки кликов можно некоторым образом защитится, используя запись кукисов в одном скрипте и считывание их в другом.

Первоисточник: www.r-i-p.info

Автор статьи: Pricol
 
Ответить с цитированием

  #2  
Старый 09.02.2009, 21:49
Аватар для blednii
blednii
Участник форума
Регистрация: 12.06.2007
Сообщений: 160
Провел на форуме:
357904

Репутация: 44
Отправить сообщение для blednii с помощью ICQ Отправить сообщение для blednii с помощью Yahoo
По умолчанию

А копипаст зачем? Может лучше выложить модернизированное с кукисами?
 
Ответить с цитированием
Ответ





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ