Полезные мелочи
Партнерская программа
Если вы когда-нибудь посещали Интернет-магазины, то наверняка видели в некоторых из них раздел "Партнерская программа". Суть такой программы проста – это предложение web-мастерам различных сайтов размещать на их страницах ссылки на магазин, и в том случае, если совершивший покупку посетитель пришел именно по такой ссылке, то тот, кто разместил ссылку, получает определенный процент от денег, выплаченных посетителем за товар.
Если вы на своем сайте также осуществляете прием заказов на что-либо от посетителей (например, у вас есть простой Интернет-магазин вроде описанного в гл. 5), то организовать партнерскую программу вы сможете буквально четырьмя строками кода на РНР.
Через гиперссылку, ведущую на какую-нибудь web-страницу, можно передать программе на этой web-странице значения переменных. Для этого следует после адреса web-страницы, на которую ссылка ведет, поместить знак вопроса, имя переменной и ее значение после знака равенства – www.domen.ru?perem=znach (можно передать и несколько переменных, записывая их одну за другой и разделяя амперсандом – &: www.domen.ru?pereml=znachl&perem2=znach2).
В результате в сценарии на странице окажется доступной переменная с соответствующими именем и значением.
Понятно, что для того чтобы иметь возможность выделять среди всего потока приходящих на сайт тех, кто пришел от партнеров, достаточно указывать в партнерской ссылке значение определенной переменной, естественно, уникальное для каждого партнера. Например, что-то вроде www.domen.ru?partner=ivanov.
Если в сценарии на той странице, куда ведет такая ссылка, имеется команда отправки письма, то можно значение этой переменной включить в отправляемое письмо. Однако довольно трудно представить себе такую ситуацию, так как обычно команда mail обрабатывает данные, переданные на содержащую ее страницу из формы, расположенной на другой странице того же сайта. Поэтому возникает вопрос – как "отловить" переданную переменную – партнерский идентификатор на той странице, на которую приходят посетители от этого партнера, и потом включить ее в письмо-заказ на странице с командой отправки почты. При условии, разумеется, что до отправки заказа посетитель, возможно, обойдет еще множество других страниц сайта?
Самым простым, но достаточно действенным способом решения такой проблемы будет использование cookies (подробнее о cookies рассказано в гл. 8). На тех страницах сайта, на которые будут указывать размещаемые партнерами ссылки, следует разместить код:
<?php if ($partner!="") { SetCookie("prtn",$partner, ""); } ?>
В результате в том случае, если в ссылке окажется переменная partner, в браузер посетителя будет отправлен cookie под названием prtn с ее значением. Помните, что установка cookie должна предшествовать любому выводу в выдаваемый документ – поэтому данный код должен стоять в самом начале документа, до каких-либо тэгов HTML.
Ну а в код той страницы, в которой составляется и отправляется письмо с заказом, достаточно включить переменную, сохраненную в cookie. Например, команда отправки почты из рассмотренного в Главе5 примера будет выглядеть так:
mail ("mail@harchikov.ru", "Заказ на кассеты", "С адреса $email пришла заявка на приобретение $kolv кассет на общую сумму $summa рублей: $zak. Контактные данные заказчика: $cont, партнерский идентификатор – $HTTP_COOKIE_VARS['prtn']", "From: $email\nReply-To: $email\nContent-Type: text/plain; charset=windows-1251");
Вот и все. Если посетитель зашел на ваш сайт от партнера, то вы об этом узнаете из письма с заказом и сможете отправить партнеру причитающийся ему процент.
При желании вы можете вместе с отправкой письма подсчитывать количество заказов, сделанных через партнера, с помощью скрипта наподобие рассмотренного чуть выше счетчика посещений – вызывая его в момент отправки письма с партнерским идентификатором. Выводить же данные этого счетчика можно на особую страницу, доступ на которую партнер будет иметь лишь после авторизации – как ее сделать, см. гл. 8. В зависимости от различных значений логина партнера на эту страницу будут выводиться данные различных счетчиков – соответственно логину.