logo beta
TalkDriver.Ru
система общения для сайтов
Общаются 430148 пользователей



Установка мессенджера

Служба поддержки
Разделы:
  1. Описание сервиса
  2. Примеры кода на сервере
  3. Упрощенный вариант ссылок
  4. Домен сервиса
  5. Информационный фрейм
  6. Картинки пользователей в списке контактов
  7. WAP-версия мессенджера
  8. Мессенджер для службы поддержки
  9. Программный интерфейс (API)
  10. Поиск пользователей в списке контактов
  11. Рассылка уведомлений о новых сообщениях
  12. Демонстрация работы мессенджера
  13. Пример мессенджера для службы поддержки

Информация на данной странице предназначена в основном для программистов, так как для установки системы общения необходимо будет внести небольшие изменения в программный код вашего сайта. Для облегчения задачи мы приводим здесь все необходимые примеры кода на языке PHP, которые вам останется только доработать под ваши конкретные условия и существующий код сайта.

Если вы хотите использовать сервис для службы поддержки на вашем сайте, то можете воспользоваться специальным режимом, не требующим программирования, в котором достаточно разместить обычный HTML-код на вашем сайте.

Описание сервиса

Для установки мессенджера достаточно расставить ссылки в необходимых частях вашего сайта. Ссылки должны генерироваться на языке программирования на стороне сервера.

Так как сервис общения не требует регистрации пользователей, а использует данные с вашего сайта, вы должны во всех ссылках на мессенджер, передавать минимально необходимую информацию о пользователях: id пользователя, ник или имя и пол. Тогда эти данные будут доступны пользователям в списке контактов.

Для защиты от подмены ссылок используется md5-хэш строки, содержащей пароль из настроек мессенджера, IP-адрес пользователя и передаваемые в ссылке данные. Вы вычисляете md5-ключ на своем сервере и перенаправляете пользователя по ссылке с этим ключом. На нашем сервере ключ вычисляется по тем же правилам и сравнивается с вашим. При совпадении ключей запускается мессенджер.

Пароль должен быть достаточно сложным для подбора, а код, где он будет прописан, надежно защищен на вашем сервере от просмотра. Если пароль будет украден, то злоумышленники смогут открывать чужую переписку, читать и посылать сообщения от имени владельца. В случае обнаружения утечки пароля необходимо срочно его поменять.

Ссылки на открытие окна мессенджера должны быть следующего вида:

http://talkdriver.ru/?sid=<sid>&user=<user>&to=<to>&key=<key>

где:

<sid>ID мессенджера, зарегистрированного на этом сайте, доступно на странице "Вход".
<user>данные текущего залогиненного пользователя на вашем сайте в виде: id;ник;пол. Обязательным полем является только id. Пол: 0 - без пола, 1 - мужской, 2 - женский.
<to>данные пользователя, кому необходимо послать сообщение, также в виде: id;ник;пол.
<key>ключ для защиты от подмены ссылки в формате md5("<psw><ip><sid><user><to>").
<psw>пароль, указанный в настройках мессенджера.
<ip>IP-адрес текущего пользователя, чтобы нельзя было перехватить ссылку и зайти в окно переписки с другого IP.

ID пользователей это 32-битные числа от 1 до 2147483647 и они должны быть уникальны в пределах одного ID мессенджера (параметр sid).

Параметры user и to для передачи в ссылках необходимо кодировать функцией rawurlencode или urlencode, так как имена пользователей могут содержать спецсимволы. Параметр to может отсутствовать, в этом случае будет открыто окно мессенджера со списком контактов без начала общения с каким-либо пользователем.

Все ссылки должны открываться в одном и том же отдельном окне. Для этого в них необходимо указать атрибут target. Рекомендуем во всех ссылках использовать такой вариант: target="msg<sid>". Не используйте вариант target="_blank" для ссылок. В таком случае мессенджер будет открываться каждый раз в разных окнах, и, если их одновременно будет открыто несколько, то произойдет конфликт. Мессенджер позволяет общаться с несколькими пользователями в одном окне, поэтому нет необходимости в нескольких запущенных окнах одновременно.

Примеры ссылок в HTML-коде:

<a href="http://talkdriver.ru/?sid=1&user=10;alex;1&to=15;katya;2&key=202cb962ac59075b964b07152d234b70" target="msg1">Послать сообщение пользователю katya</a>

<a href="http://talkdriver.ru/?sid=1&user=10;alex;1&key=81dc9bdb52d04dc20036dbd8313ed055" target="msg1">Ваши сообщения</a>

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

<a href=# onclick='open("http://talkdriver.ru/?sid=1&user=10;alex;1&to=15;katya;2&key=202cb962ac59075b964b07152d234b70", "msg1", "height=400,width=650,top=150,left=150,resizable=1");return false'>Ваши сообщения</a>

Примеры кода на сервере

Все примеры представлены на языке PHP.

<?
$user_id 
= ...; // id текущего залогиненного пользователя на вашем сайте
$to_id = ...; // id пользователя, которому необходимо послать сообщение

$sid = <sid>; // ID мессенджера
$ip $_SERVER["REMOTE_ADDR"]; // IP-адрес текущего пользователя

$user $user_id.";<ник>;<пол>"// данные пользователя $user_id
$to $to_id.";<ник>;<пол>"// данные пользователя $to_id

$key md5("<пароль>".$ip.$sid.$user.$to); // ключ для контроля правильности ссылки
$link "http://talkdriver.ru/?sid=".$sid."&user=".rawurlencode($user)."&to=".rawurlencode($to)."&key=".$key;

echo 
"<a href='".$link."' target='msg".$sid."'>Сообщение</a>";
?>

Ссылка на открытие окна мессенджера текущего пользователя без адресата $to:

<?
$key 
md5("<пароль>".$ip.$sid.$user);
$link "http://talkdriver.ru/?sid=".$sid."&user=".rawurlencode($user)."&key=".$key;
?>

Для оповещения пользователей о новых сообщениях добавьте картинку со следующим адресом после ссылки на мессенджер в меню пользователя. В картинке будет отображаться количество новых сообщений.

<?
$key 
md5("<пароль>".$ip.$sid.$user_id);
$src "http://talkdriver.ru/newmes.php?sid=".$sid."&user=".$user_id."&key=".$key;
echo 
"<img src='".$src."' height=14 align=absmiddle>";
?>

Для отображения статуса пользователей (онлайн или офлайн) используйте картинку со следующим адресом.

<?
$key 
md5("<пароль>".$ip.$sid.$user_id);
$src "http://talkdriver.ru/status.php?sid=".$sid."&user=".$user_id."&key=".$key;
echo 
"<img src='".$src."' height=11 align=absmiddle>";
?>

Упрощенный вариант ссылок

Для удобства рекомендуем создать отдельный файл-скрипт на сервере, в котором будет происходить редирект на страницу мессенджера со всеми необходимыми параметрами, например, "msg.php" в корне веб-сервера. В таком случае все ссылки на сайте делаются в виде: "/msg.php" - открыть окно, "/msg.php?to=".$to_id - открыть окно и начать переписку с пользователем $to_id. При таком варианте все ссылки выглядят простыми и локальными, ведущими на основной домен сайта, а вся логика по генерации ссылок выносится в отдельный файл.

Пример скрипта "msg.php":

<?
session_start
();

$user_id $_SESSION["USER_ID"]; // ID текущего залогиненного пользователя

if (!$user_id)
    exit;

// впишите код получения данных пользователя $user_id из базы или сессии
$user_nick = ...; $user_sex = ...;

$user $user_id.";".$user_nick.";".$user_sex;

$to_id = (int)$_GET["to"]; // ID пользователя, с кем необходимо открыть переписку

if ($to_id && $to_id != $user_id) {
    
// впишите код получения данных пользователя $to_id из базы
    
$to_nick = ...; $to_sex = ...;

    
$to $to_id.";".$to_nick.";".$to_sex;
}
else
    
$to "";

$sid = <sid>;
$key md5("<пароль>".$_SERVER["REMOTE_ADDR"].$sid.$user.$to);

$url "http://talkdriver.ru/?sid=".$sid."&user=".rawurlencode($user).($to "&to=".rawurlencode($to) : "")."&key=".$key;

header("Location: ".$url);
?>

Пример ссылки:

<?
echo "<a href='/msg.php' target='msg".$sid."'>Сообщения</a>";
?>

Домен сервиса

Вместо адреса talkdriver.ru возможно использовать любой другой с тем же IP-адресом. Таким образом, вы можете настроить поддомен в вашем домене на сервис мессенджера, и для пользователей он будет выглядеть разделом вашего сайта.

Чтобы не зависеть от смены IP-адреса в будущем, для поддомена лучше всего прописать альяс CNAME в DNS настройках:

msg CNAME talkdriver.ru.

Информационный фрейм

В окне мессенджера имеются два верхних фрейма, в которых будет загружаться информация о пользователях-собеседниках. Слева − текущий пользователь мессенджера, справа − активный пользователь из списка контактов, с которым идет переписка. Адрес для фреймов вводится в настройках мессенджера и должен указывать на скрипт вашего сайта. Скрипту будут передаваться в параметрах ID пользователя из контактов и ID текущего пользователя мессенджера. Таким образом, вы сможете, например, выводить фотографию пользователя или другие данные. Высота фреймов 80 пикселей. Если адрес не указать в настройках, то фреймы не будут выводиться.

Передаваемые параметры (метод GET):

<id>ID пользователя из списка контактов, информацию о котором необходимо отобразить во фрейме.
<uid>ID пользователя мессенджера.

Кроме этих параметров будут переданы все те, что вы укажете в настройках мессенджера в адресе скрипта после знака "?".

Например, если указать в настройках адрес "http://mysite.ru/msg_user.php", то адрес фрейма будет "http://mysite.ru/msg_user.php?id=<contact_id>&uid=<user_id>", а примерный скрипт будет выглядеть так:

<?
$id 
= (int)$_GET["id"];
$uid = (int)$_GET["uid"];

// впишите код получения данных пользователя из базы по $id
$r = ...;

if (!
$id || !$r)
    
$info "<table width=100% height=100%><tr><th>Пользователь не существует либо был удален.</table>";
else
    
$info "<table cellspacing=0 cellpadding=0><tr valign=top><td>".
            
"<img src=".$r["foto"]." height=80 hspace=0>".
            
"<td bgcolor=#60A3CF width=7>&nbsp;<td style='padding:4px'>".
            
"<a href=http://mysite.ru/user/?".$id." target=_blank>".$r["name"]."</a>".
            
"</table>";

header("Content-Type: text/html; charset=windows-1251");

// кэшировать 10 дней, для уменьшения количества запросов и трафика
header("Cache-Control: cache");
header("Expires: ".gmdate("D, d M Y H:i:s"time() + 3600*24*10)." GMT");

echo 
"<style>body{font-family:tahoma;font-size:80%}</style>",
     
"<body bgcolor=#8DBBDC>"$info"</body>";
?>

Картинки пользователей в списке контактов

Вы также можете в настройках мессенджера указать адрес скрипта на вашем сервере, через который будут загружаться картинки пользователей в списке контактов для лучшего восприятия списка. Ваш скрипт будет получать ID пользователя из контактов и должен выводить соответствующую этому пользователю картинку или фото размером 28x28 пикселей в формате jpg, gif или png. Если этот адрес не будет указан в настройках, то контакты будут выводиться без картинок в более компактном виде.

Передаваемые параметры (метод GET):

<id>ID пользователя из списка контактов.

Кроме этого параметра будут переданы все те, что вы укажете в настройках мессенджера в адресе скрипта после знака "?".

Например, если указать адрес "http://mysite.ru/msg_icon.php", то адрес картинок будет "http://mysite.ru/msg_icon.php?id=<contact_id>", а примерный скрипт будет выглядеть так:

<?
$id 
= (int)$_GET["id"];

// впишите код получения данных пользователя из базы по $id
$r = ...;

if (!
$id || !$r)
    
$img_path "/images/user_unknown.jpg";
else
    
$img_path $r["foto"] ? $r["foto"] : "/images/user_default.jpg";

$img imagecreatefromjpeg(".".$img_path);
$new_img imagecreatetruecolor(2828);

// вырезаем квадрат из картинки и уменьшаем до 28x28
$width min(imagesx($img), imagesy($img));
imagecopyresampled($new_img$img00002828$width$width);

header("Content-Type: image/jpeg");

// кэшировать 10 дней, для уменьшения количества запросов и трафика
header("Cache-Control: cache");
header("Expires: ".gmdate("D, d M Y H:i:s"time() + 3600*24*10)." GMT");

imagejpeg($new_img);
?>
Пример приведен только для формата картинок jpeg. При необходимости доработайте его и для других форматов.

WAP-версия мессенджера

Для WAP-версии мессенджера необходимо использовать адрес: wap.talkdriver.ru или wap.<ваш поддомен>.

Для своего поддомена необходимо добавить альяс в DNS настройки:

wap.msg CNAME talkdriver.ru.
Так как в мобильных телефонах обычно используется только одно окно в браузере, и окно мессенджера открывается поверх основной страницы, то в WAP версии дополнительно в ссылках на мессенджер используется параметр r, через который передается адрес для возврата на основной сайт, чтобы пользователи могли вернуться после отправки или прочтения сообщений.

<?
$r 
"mysite.ru/user/";
$link "http://wap.talkdriver.ru/?sid=".$sid."&user=".rawurlencode($user)."&key=".$key."&r=".$r;
?>

Мессенджер для службы поддержки

Наш сервис общения можно использовать не только для пользователей вашего сайта, но и для службы поддержки или консультантов. Для этого необходимо завести мессенджер в нашей системе и прописать ссылки на вашем сайте для одного или нескольких ваших работников. ID для работников придумайте такие, чтобы они не могли совпасть с ID пользователей. Если хотите, чтобы посетители сайта могли писать сообщения без регистрации, генерируйте каждый раз уникальный ID для посетителей-гостей и сохраняйте его в сессии или куках на случай, если посетитель закроет окно общения и захочет снова в него зайти.

Примеры ссылок для работников:

<a href="http://talkdriver.ru/?sid=2&user=1;admin;1&key=103c49f2dca9475b66cbb7f53d135a5f" target="msg2">Мессенджер администратора</a>

<a href="http://talkdriver.ru/?sid=2&user=2;support;1&key=144fb217af580a84a536b11dda2c4bcf" target="msg2">Мессенджер службы поддержки</a>

Примеры ссылок для посетителей:

<a href="http://talkdriver.ru/?sid=2&user=100;guest&to=1&key=202cb962ac59075b964b07152d234b70" target="msg2">Написать администратору</a>

<a href="http://talkdriver.ru/?sid=2&user=100;guest&to=2&key=34acb912ac56078ba63ab71fd12244ce" target="msg2">Написать в службу поддержки</a>

Параметр <to> в последнем примере содержит только ID пользователя-работника, так как после первого открытия мессенджера работниками в базе сохранятся данные этих пользователей, и далее нет необходимости их передавать.

Специальный режим для службы поддержки

Для облегчения задачи по подключению мессенджера в качестве службы поддержки существует простой способ, который включается в настройках мессенджера флажком "Использовать мессенджер для службы поддержки".

В этом варианте вы просто должны разместить на своем сайте следующий HTML-код:

<!-- TalkDriver.Ru -->
<
a href="http://talkdriver.ru" onclick="return msg_open()">Служба поддержки</a>
<
script>
if (
document.cookie.search("_MSG_") >= 0)
    
document.write("<scr"+"ipt src=http://talkdriver.ru/support.php?sid=<sid>&crc=<crc>&js></scr"+"ipt>")

function 
msg_open() {
    var 
= new Date()
    
d.setDate(d.getDate() + 7)
    
document.cookie "_MSG_=1;path=/;expires=" d.toGMTString()
    
window.screen
    open
("http://talkdriver.ru/support.php?sid=<sid>&crc=<crc>""msg<sid>""height=500,width=650,top="+(? (d.height-600)>>100)+",left="+(? (d.width-650)>>120)+",resizable=1")
    return 
false
}
</script>
<!-- end -->

Данный код можно подключить к любому сайту даже на бесплатном хостинге − он не требует программирования. После размещения кода ваши посетители смогут задавать вам вопросы прямо с сайта и получать ответы в реальном времени или заходя на сайт позже. В этом варианте все пользователи будут обращаться к вам анонимно, т.е. без регистрации на сайте. ID для пользователей будет выбираться уникальным в диапазоне от 10000000. После того как пользователь один раз откроет окно, его ID сохранится в куках, и позже он всегда будет обращаться в службу поддержки под этим ID и видеть ответы и предыдущую переписку.

Если вы хотите, чтобы зарегистрированные пользователи могли обращаться к вам под своими постоянными именами и ID, то для них дополнительно передайте в обеих ссылках параметры <user> и <key>, которые должны генерироваться на вашем сервере по описанным выше правилам.

В качестве ID пользователя для службы поддержки в этом режиме используется число 99999999. Для входа в окно мессенджера под этим пользователем вы можете использовать ссылку "Вход" со страницы управления на этом сайте, либо разместить ссылку на своем сайте в недоступном для посетителей месте. Ссылку необходимо генерировать на сервере с учетом пароля и IP-адреса по описанным выше правилам.

Параметр <sid> в коде - это ID мессенджера, а <crc> - контрольный ключ для защиты ссылки. Эти параметры будут доступны после создания мессенджера по ссылке "Код для установки" на странице управления.

Javascript, выводимый командой document.write, предназначен для отображения ответа от службы поддержки − мигающего конверта. Когда новых ответов нет, пользователь будет видеть пустой конвертик, который можно отключить, установив параметр js в адресе скрипта в значение 2.

Если вы подключили один сервис поддержки к нескольким сайтам, то можете использовать дополнительный параметр site в команде открытия окна "open", например, "&site=mysite.ru". Тогда к именам пользователей будет добавлен этот текст.

Для отображения статуса службы поддержки (онлайн или офлайн) используйте упрощенный вариант картинки:

<img src="http://talkdriver.ru/support.php?sid=<sid>&crc=<crc>&status" height=11 align=absmiddle>
Для отображения своей картинки в зависимости от статуса оператора можно использовать код:

<script src="http://talkdriver.ru/support.php?sid=<sid>&crc=<crc>&status&js"></script>
<script>document.write("<img src=/"+(window.msg_status ? "online.gif" : "offline.gif")+">")</script>

В конце документации приведен пример кода мессенджера для службы поддержки.

Программный интерфейс (API)

Вы можете автоматически рассылать сообщения со своего сервера от одного пользователя другому. Например, сообщения от администратора или разные уведомления о событиях на сайте. Также возможно посылать одно сообщение сразу всем пользователям.

Для рассылки сообщений воспользуйтесь скриптом:

http://talkdriver.ru/send.php?sid=<sid>&user=<user>&to=<to>&key=<key>&msg=<msg>

Параметры здесь такие же, как в разделе "Описание сервиса". Дополнительный параметр <msg> содержит текст посылаемого сообщения и должен быть закодирован функцией rawurlencode. Для генерации ключа <key> используется IP-адрес вашего сервера, с которого будет выполнен вызов скрипта.

Если параметр <to> равен -1, то будет выполнена рассылка всем пользователям мессенджера.

Данный скрипт можно вызывать методом GET или POST. При отправке сообщения пользователи (отправитель и получатель) автоматически добавляются друг другу в контакты, но при массовой рассылке новый контакт будет добавлен только получателям сообщений.

Поиск пользователей в списке контактов

В мессенджере имеется функция поиска новых пользователей и добавления их в список контактов. Для возможности искать пользователей по вашей базе на сайте укажите в настройках адрес для скрипта на вашем сервере, который будет возвращать данные пользователя по введенному в строке поиска имени или нику. Если скрипт не указать, то поиск будет осуществляться по нашей базе среди пользователей, хотя бы один раз зашедших в мессенджер.

Передаваемые параметры (метод GET):

<sid>ID мессенджера.
<uid>ID пользователя, выполняющего поиск.
<data>строка с введенным именем пользователя.

Кроме этих параметров будут переданы все те, что вы укажете в настройках мессенджера в адресе скрипта после знака "?".

Ваш скрипт должен вернуть строку с данными пользователя в формате "id;ник;пол", если пользователь будет найден, и пустую строку в другом случае. Обязательным полем в возвращаемой строке является только id пользователя.

Пример скрипта:

<?
$sid 
$_GET["sid"];
$uid $_GET["uid"];
$data $_GET["data"];

if (
$sid != <sid>)
    exit;

// впишите код получения данных пользователя из базы по строке $data
$u = ...;

if (
$u)
    echo 
"$u[id];$u[login];$u[sex]";
?>

Рассылка уведомлений о новых сообщениях

Для уведомления пользователей о новых сообщениях вы можете создать специальный скрипт на вашем сервере и указать его адрес в настройках мессенджера. Наша система периодически проверяет базу сообщений пользователей, собирает информацию о новых сообщениях и передает эти данные на ваш скрипт. Задача вашего скрипта - получить для каждого пользователя контакты из базы, например, адрес e-mail, и послать по ним уведомление о новых сообщениях. Таким образом, рассылка сообщений будет происходить с вашего сервера, и нет необходимости передавать контакты пользователей в нашу систему. Если же вы не укажете в настройках адрес скрипта, то уведомления будут рассылаться нашим сервером только для пользователей, у которых указан e-mail. Адрес e-mail пользователи могут вводить сами в настройках, или его можно передавать в ссылках на открытие мессенджера 4-м параметром в данных о пользователе.

Передаваемые вашему скрипту параметры методом POST:

<sid>ID мессенджера.
<data>строка с данными о новых сообщениях в формате:
"user:from-cnt:from-cnt:...;user:from-cnt:from-cnt:...;...",
где user - ID пользователя, получившего сообщения, from - ID пользователя отправившего сообщение, cnt - количество новых сообщений от пользователя from.

Кроме этих параметров будут переданы все те, что вы укажете в настройках мессенджера в адресе скрипта после знака "?".

В вашем скрипте необходимо будет распарсить строку data, сгенерировать текст уведомления со списком отправителей и количеством сообщений для каждого пользователя-получателя и разослать им сообщение с этим текстом, например, на e-mail.

Пример скрипта:

<?
$sid 
$_POST["sid"];
$data $_POST["data"];

if (
$sid != <sid>)
    exit;

$users explode(";"$data);

foreach (
$users as $data) {
    
$contacts explode(":"$data);
    
$user_id array_shift($contacts);

    
// впишите код получения данных пользователя $user_id из базы
    
$u = ...;

    if (
$u["email"]) {
        
$list "";

        foreach (
$contacts as $data) {
            list(
$contact_id$cnt) = explode("-"$data);

            
// впишите код получения данных пользователя $contact_id из базы
            
$c = ...;

            
$list .= $c["nick"].": ".$cnt."\n\n";
        }

        
$message "Здравствуйте, ".$u["nick"].".\n\nУ вас новые сообщения:\n\n".$list;
        
mail($u["email"], "Новые сообщения"$message);
    }
}
?>

Демонстрация работы мессенджера:

Приводим пример готового подключенного мессенджера с фиксированным набором пользователей.

Вы: Ирина

Открыть мессенджер

Начать переписку с пользователем:

Alex  Igor  Masha  Катя  Сергей  Александр  Татьяна  Konstantin  Наталья  Владимир  User  Миша 

Код этого примера:

<?
$users 
= array(=> "1;Alex;1""2;Igor;1""3;Masha;2""4;Катя;2""5;Сергей;1",
                    
"6;Александр;1""7;Татьяна;2""8;Konstantin;1""9;Наталья;2",
                    
"10;Владимир;1""11;User;0""12;Ирина;2""13;Миша;1");

$sid 5;
$psw "********";
$ip $_SERVER["REMOTE_ADDR"];

if (!
$my_id $_SESSION["_demo_id"])
    
$my_id $_SESSION["_demo_id"] = array_rand($users);

$user $users[$my_id];

$url "http://talkdriver.ru/?sid=".$sid."&user=".$user;
$img "http://talkdriver.ru/newmes.php?sid=".$sid."&user=".$my_id."&key=".md5($psw.$ip.$sid.$my_id);

$u explode(";"$user);

echo 
"<table bgcolor=lightblue cellspacing=10><tr><td>Вы: <b>".$u[1]."</b><br><br>",
        
"<a href='".$url."&key=".md5($psw.$ip.$sid.$user)."' target=msg5>Открыть мессенджер</a>",
            
"<img src='".$img."' height=14 align=absmiddle><br><br>",
        
"Начать переписку с пользователем:<br><br>";

foreach (
$users as $to) {
    
$u explode(";"$to);

    if (
$u[0] != $my_id)
        echo 
"<a href='".$url."&to=".$to."&key=".md5($psw.$ip.$sid.$user.$to)."' target=msg5><b>".$u[1]."</b></a>&nbsp; ";
}

echo 
"</table>";
?>

Пример мессенджера для службы поддержки:

Приводим пример мессенджера для службы поддержки, используемого на этом сайте. Ссылка на вход в мессенджер вверху страницы. Пример позволяет обращаться в службу поддержки как зарегистрированным пользователям, так и анонимным гостям.

Код для вывода ссылки на сайте для общения со службой поддержки:

<?
$sid 
4;
$crc "b94bf73b";
$psw "********";

// статус пользователя службы поддержки (онлайн или офлайн)
echo "<img src=http://talkdriver.ru/support.php?sid=<?=$sid?>&crc=<?=$crc?>&status height=11 align=absmiddle>";

$q "";
if (
$USER_ID) { // ID залогиненного пользователя
    
$user $USER_ID.";".$_SESSION["LOGIN"];
    
$q "&user=".rawurlencode($user)."&key=".md5($psw.$_SERVER["REMOTE_ADDR"].$sid.$user);
}

?>
<!-- 
TalkDriver.Ru -->
<
a href="http://talkdriver.ru" onclick="return msg_open()">Служба поддержки</a>
<
script>
if (
document.cookie.search("_MSG_") >= 0)
    
document.write("<scr"+"ipt src=http://talkdriver.ru/support.php?sid=<?=$sid?>&crc=<?=$crc?>&js<?=$q?>></scr"+"ipt>")

function 
msg_open() {
    var 
= new Date()
    
d.setDate(d.getDate() + 7)
    
document.cookie "_MSG_=1;path=/;expires=" d.toGMTString()
    
window.screen
    open
("http://talkdriver.ru/support.php?sid=<?=$sid?>&crc=<?=$crc?><?=$q?>""msg<?=$sid?>""height=500,width=650,top="+(? (d.height-600)>>100)+",left="+(? (d.width-650)>>120)+",resizable=1")
    return 
false
}
</script>
<!-- end -->

Код вывода ссылки для службы поддержки для общения с посетителями:

<?
$sid 
4;
$psw "********";
$user "99999999;Служба поддержки";

$url "?sid=".$sid."&user=".rawurlencode($user)."&key=".md5($psw.$_SERVER["REMOTE_ADDR"].$sid.$user);

echo 
"<a href=http://talkdriver.ru/".$url." target=msg".$sid.">Служба поддержки</a>",
     
"<img src=http://talkdriver.ru/newmes.php".$url." align=absmiddle>";
?>

Веб-мессенджер для сайтов TalkDriver.Ru © 2009-2015, support­@­talkdriver.ru