На досуге написал простой скрипт для отправки коммерческих предложений и подсчета переходов из разосланных писем. Скрипт достаточно простой, но все же я решил поделиться с Вами вдруг кому-нибудь пригодится.
Для работы скрипта нам понадобится база данных, куда он будет сохранять данные об отправленных письмах.
Давай те создадим её, как она будет называться роли не играет можете придумать название самостоятельно. Теперь давайте создадим таблицу, для этого можете воспользоваться этим запросом.
CREATE TABLE IF NOT EXISTS `click` ( `id` int(11) NOT NULL AUTO_INCREMENT, `start_date` datetime DEFAULT NULL, `mail` varchar(200) DEFAULT NULL, `click_date` datetime DEFAULT NULL, `clicked` int(11) DEFAULT '0', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=10 ;
Сам наш скрипт как таковой будет состоять из 4 файлов, это форма отправки, файл подключения к базе данных, обработчик формы и обработчик клика.
Давайте создадим файл и поместим туда такую форму.
<form action="sendmail.php" method="post" name="lippi"><label for="to">Кому</label> <input id="to" class="input-large" type="text" name="to" /><label for="subject">Тема</label> <input id="subject" class="input-large" type="text" name="subject" /> <label for="url">Проект</label> <select name="url"> <option value="www.maiboroda.ru">www.maiboroda.ru</option></select> <label for="text">Предложение</label> <textarea id="text" class="input-xxlarge" style="height: 150px;" name="text"></textarea> <div class="form-actions"><button class="btn btn-success btn-large" type="submit"><em class="icon-envelope icon-white"></em> Отправить</button></div> </form>
Теперь нам понадобится подключаться к базе данных, и поэтому давайте создадим файл для подключения.
$hostname_db = "localhost";
$database_db = "base";
$username_db = "user";
$password_db = "pass";
$db = mysql_connect($hostname_db, $username_db, $password_db) or trigger_error(mysql_error(),E_USER_ERROR);
mysql_select_db($database_db);
mysql_query("SET NAMES 'utf8'");
mysql_query("SET CHARACTER SET 'utf8'");
Далее нам необходим обработчик который будет обрабатывать данный поступившие из формы, делать запись в базу об отправленном сообщении и собственно посылать письмо.
session_start();
if (isset($_POST['to'])) $to = htmlspecialchars ($_POST['to'], ENT_QUOTES);
if (isset($_POST['subject'])) $subject = htmlspecialchars ($_POST['subject'], ENT_QUOTES);
if (isset($_POST['url'])) $url = htmlspecialchars ($_POST['url'], ENT_QUOTES);
if (isset($_POST['text'])) $text = htmlspecialchars ($_POST['text'], ENT_QUOTES);
$mail_tag = base64_encode($to);
// Адрес по которому будет находится обработчик
$host = 'http://www.site.ru/click.php';
$link_ad = '?click='.$mail_tag.'&amp;amp;amp;amp;location='.$url.'';
include('bd.php');
$flag = mysql_query("INSERT INTO click(start_date, mail) VALUES (NOW(), '$to')") or die ('Ошибка записи в базу.');
$message = ''.$text.'. Подробнее: '.$host.''.$link_ad.'';
$headers = 'From: name@sitename.ru' . "\r\n" .
'Reply-To: name@sitename.ru' . "\r\n" .
'X-Mailer: PHP/' . phpversion();
mail($to, $subject, $message, $headers);
header('Location: /');
Теперь нам осталось написать обработчик, который подсчитает сколь человек перешло и подскажет нам адреса заинтересованных лиц.
if (isset($_GET['click'])) $click = htmlspecialchars ($_GET['click'], ENT_QUOTES);
if (isset($_GET['location'])) $location = htmlspecialchars ($_GET['location'], ENT_QUOTES);
$mail = base64_decode($click);
include('bd.php');
$flag = mysql_query("UPDATE click SET click_date = NOW(), clicked = '1' WHERE mail = '$mail'");
$ref = 'http://'.$location.'/';
header("Location: $ref");
Работает это следующим образом. В форму мы вставляем необходимый нам текст предложения, нажимаем отправить, обработчик в конце текста подставляет ссылку для пользователя, по которой мы будем отслеживать его переход, и отправляет письмо.
Ссылка выглядит следующим образом: http://www.site.ru/click.php?click=dXNlcm1haWxuYW1lQG1haWwuY29t&location=www.maiboroda.ru
Где переменная click содержит адрес электронной почты обработанный функцией base64_decode() а переменная location адрес сайта куда надо перенаправить человека после перехода по ссылке.
Необходима переделка сайта обращайтесь в компанию Q-PR, сделают качественно и в срок.
Удобный онлайн конвертер файлов поддерживает огромное количество файлов.