X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость ( Вход | Регистрация )

Открыть тему
Тема закрыта
> Пункт обмена баннерами
M-seo
M-seo
Topic Starter сообщение 31.10.2008, 15:43; Ответить: M-seo
Сообщение #1


Частый гость
**

Группа: User
Сообщений: 92
Регистрация: 14.10.2008
Из: localhost
Поблагодарили: 14 раз
Репутация:   5  


Раскрутка сайта и рекламирование своего ресурса — обычная унылая рутина. Один из способов заявить о своем сайте в Сети — активно обмениваться баннерами с другими сайтами подобных тематик: считается, что это привлекает новых посетителей и повышает индекс цитирования вашего сайта. Но чего стоит размещение своего баннера на чужом сайте! Переписка с разработчиком, обмен ссылками и кодами баннеров, в придачу ко всему этому нужно постоянно проверять, все ли на месте и правильно ли прописан код. В свою очередь разработчику придется вручную изменять свои страницы и перезаливать их на сервер. Как только подумаешь обо всем этом, так сразу и тянет поискать альтернативные пути решения :-). А чего искать-то, если у нас под рукой PHP? Давайте разберемся, как автоматизировать всю эту рутину, тем самым избавив себя от множества лишних хлопот.

Подготовка базы данных

Для хранения ссылок и кодов баннеров вполне хватило бы текстового файла, но мы выберем более солидный вариант — работу с базами данных MySQL. Если вы еще плохо ориентируетесь в работе с MySQL, то можно воспользоваться вспомогательными программами, например, phpMyAdmin. В Denwer эта программа идет в стандартной комплектации. Ничего сложного мы затевать не собираемся, так что можно справиться и вручную. Для начала создадим БД, если она еще не создана:
CREATE DATABASE `banners`;


Назовем ее banners; если же у вас БД уже создана, то в дальнейшем тексте программы просто подставьте ее имя. Нам понадобится таблица с двумя полями:
CREATE TABLE `ban` (
`url` TEXT NOT NULL ,
`banner` TEXT NOT NULL
);

Таблица называется ban, она имеет два поля — url и banner. В первом будут храниться ссылки на сайты, а во втором — коды баннеров для соответствующих сайтов. Оба поля имеют текстовые типы и не могут быть нулевыми. Больше ничего делать не нужно, перейдем к работе с PHP-сценарием.

Форма

Для формы нам потребуется три поля ввода и, конечно же, кнопка для обработки формы. Допустим, для обмена баннерами нам нужно узнать адрес сайта, с которым будет происходить обмен, код их баннера, а также страницу, где у них на сайте расположен наш баннер. Начнем написание сценария с формы для ввода всех этих данных:
<?php

echo "
<form action=".$PHP_SELF." method=post>
<table border=0 align=center>
<tr>
<td align=right><b>Ссылка на ваш сайт: </b></td>
<td><input type=text name=linkToUrl size=50 value='http://'></td>
</tr>
<tr>
<td align=right><b>Ссылка на ваш баннер: </b></td>
<td><input type=text name=linkTo size=50 value='http://'></td>
</tr>
<tr>
<td><b>Ссылка на страницу с нашим банером: </b></td>
<td><input type=text name=linkOn size=50 value='http://'></td>
</tr>
</table>

<p align=center>
<input type=submit value=Готово>
</p>
</form>
";

Имя скрипту можете дать любое, так как в значении action формы мы указали переменную окружения $PHP_SELF, которая обозначает путь к выполняемому сценарию. Поля называются следующим образом: linkToUrl (ссылка на чужой сайт), linkTo (ссылка на их баннер), linkOn (cсылка на страницу с нашим баннером). Заполненная форма показана на рис. 1.


Обработчик скрипта

Сразу напишем код нашего баннера, чтобы в дальнейшем можно было осуществлять проверки его наличия на указанных сайтах. В переменную $banner_text занесем его значение:
$banner_text = '<a href="http://heel.net.ua" target="_blank"><img src="http://heel.net.ua/banner.gif" width="88" height="31" alt="Описание сайта"></a>';


Адреса и описание поменяете под свои данные. Теперь подключимся к нашей БД:
  $server_db = 'server';
  $user_db = 'root';
  $password_db = 'password';
  $name_db = 'banners';

  $db = mysql_connect($server_db, $user_db, $password_db);
  mysql_select_db($name_db);


Здесь требуется указать имя сервера БД, имя пользователя и пароль для подключения к БД, а также таблицу, с которой мы будем работать. Вам придется изменить эти значения для работы на своем сервере.

Теперь обработаем передачу параметров сценарию — иначе говоря, то, что будет происходить, если кто-то захочет произвести обмен баннерами с нашим сайтом:
if (!empty($_POST['linkOn'])) //если передаются параметры
{
  $linkOn = $_POST['linkOn'];
//скачиваем содержимое страницы с нашим баннером
  $banner_page = @file_get_contents($linkOn);
//поиск кода нашего баннера на указанной странице
  $find = strpos($banner_page, $banner_text);
//если код присутствует на странице
  if ($find !== 0)
  {
  $err = 0; //контроль ошибок
//проверяем, нет ли уже такой ссылки в БД
  $zap = mysql_query('select * from ban;');
  for($i=0;$i<mysql_num_rows($zap);$i++)
  {
  $row = mysql_fetch_array($zap);
  if ($row['url'] == $linkToUrl)
  {
  echo 'Ссылка на ваш сайт уже размещена на странице нашего сайта!';
  $err = 1;
  break;
  }

  }
  if ($err != 1 )
  {
/* проверяем, совпадают ли адрес сайта и адрес страницы с нашим баннером */
  $state = strpos($linkOn,$linkToUrl);
  if ($state === false)
  {
  echo 'Адрес сайта и страницы с нашим баннером не совпадают!';
  }
  Else //если все без ошибок
  {
//добавляем информацию о новом сайте в БД
  mysql_query("INSERT INTO `ban` ( `url` , `banner` ) VALUES ('".$linkToUrl."', '".$linkTo."');");

//сообщаем об успешном добавлении
  echo '<p align=center><font color=red>Баннер успешно добавлен в систему</font></p>';
//пишем письмо на свой ящик о появлении нового баннера на сайте
  mail('heel@i.ua','NEW BANNER', 'На вашем сайте появился новый баннер!');
    }
   }
  }
  else
  echo 'Не удалось найти наш баннер у вас на сайте.';
}

Здесь происходит множество различных проверок на корректность указанной информации, а также на наличие нашего баннера на странице указанного сайта. Важно, чтобы наш баннер был размещен именно на том сайте, куда мы будем ссылаться — иначе любой желающий сможет указывать в поле с адресом страницу, на которой уже размещен наш баннер. Также необходимо проверять, не числится ли этот сайт уже в БД, иначе среди баннеров может получиться соотношение «один ко многим» :-).

Теперь осталось только сделать запрос к БД и вывести на страницу все баннеры, которые уже имеются в наличии и должны быть отображены на странице:
$zap = mysql_query('select * from ban;'); /* запрос на выборку данных из таблицы */
echo '<table border=0 align=center cellspacing=10><tr>';
//выводим данные в цикле по ячейкам таблицы
  for($i=0;$i<mysql_num_rows($zap);$i++)
  {
//заносим данные в массив
  $cur = mysql_fetch_array($zap);
  echo "<td><a href=".$cur['url']." target=_blank><img src='".$cur['banner']."' border=0 width=88 height=31></a></td>";
  }
echo '</tr></table>';
  mysql_close($db);
?>


Здесь мы подаем запрос на выборку всех данных с БД: select * from ban. Далее создаем таблицу и выводим баннеры в строку, установив расстояние между ними в 10 пикселей. В конце сценария закрываем соединение с БД и завершаем сценарий.

Заключение

Конечно же, наш скрипт не учитывает множество различных уловок. Проверка наличия баннера на чужом сайте довольно поверхностная. При желании ее можно обойти небольшой функцией, написанной на Java Script. Впрочем, вы можете потратить массу времени, написав множество защит от фреймов, стилей и всяких уловок на Java Script, но дырка все равно найдется, и кто-то обязательно ею воспользуется, если очень уж захочется. Давайте не будем забывать, что от подобных вещей никто не застрахован, и обмануть можно даже при обычном обмене, предваряемом перепиской по ICQ или e–mail. Пожалуй, можно посоветовать только одно: осуществлять ежемесячные или еженедельные проверки сайтов по баннерам, размещенным на вашей странице. Если вы совсем уж недоверчивы, то можете проверять правильность размещения своего баннера самостоятельно, после каждого письма на вашем ящике о размещении нового баннера. При необходимости можно составлять черные списки, в которых будут храниться адреса нарушителей. В сценарий обмена можно добавить дополнительную проверку, которая будет игнорировать сайты, когда-либо нарушившие оговоренные правила.
_______________________________________________
Автор статьи Сергей ПАРИЖСКИЙ


Поблагодарили: (1)
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Виталий_Б
Виталий_Б
сообщение 3.11.2008, 16:50; Ответить: Виталий_Б
Сообщение #2


Бывалый
****

Группа: Banned
Сообщений: 436
Регистрация: 3.11.2008
Из: w.w.w.
Поблагодарили: 138 раз
Репутация:   31  


Можно было прямо в php файлах выложить скрипт=) Но всё равно спасибо! работает...
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) XeBit.ru - обменный пункт электронных валют
webmoney, qiwi, yandex, Сбербанк, Приват24
3 xebit 957 8.12.2017, 19:48
автор: xebit
Горячая тема (нет новых ответов) Тема имеет прикрепленные файлыСервис обмена электронных валют 24bestex.com - обмен Privat24, Perfect Money, Payeer, AdvCash, OKpay
Онлайн обмен электронных денег Privat24, Perfect, Payeer AdvCash OKpay
38 rsem 8080 6.12.2017, 15:42
автор: rsem
Открытая тема (нет новых ответов) Тема имеет прикрепленные файлыMycrypto.market - сервис обмена электронных валют | WU, MG | PM | BTC, ETH, LTC | AdvCash | ЯД
10 Mycrypto_market 2098 5.12.2017, 21:52
автор: EvilGomel
Открытая тема (нет новых ответов) Platiwm.biz – сервис обмена электронных валют (Webmoney, Qiwi, Yandex)
Лучшие курсы, моментальный и надежный обмен
22 platiwm 4622 28.11.2017, 12:30
автор: platiwm
Открытая тема (нет новых ответов) cryptochange.net - онлайн сервис обмена электронных валют
Сервис Cryptochange.net поможет быстро, безопасно и выгодно обменять
14 Profy 3694 14.7.2017, 23:42
автор: Profy


 



RSS Текстовая версия Сейчас: 11.12.2017, 17:56
Дизайн