<?
/**
* Скрипту при помощи метода пост необходимо передать следующие параметры
* set - этап отсылки СМС
* translit = 1 если посылаем текст в юникоде (без транслита)
* sms_from - от КОГО
* sms_to - КОМУ
* sms_text - Текст СМСки
* scode - секретный код
**/
//Подключаем файл конфигурации
include("config.php");
//---------------------------------------------------------------
//НЕ ИЗМЕНЯТЬ
$gate_url="http://send.sms-me.ru/sms_gate.php";//URL гейта sms-me.ru
$feed_back="";//Данные отдаваемые пользователю
//События
switch ($set){
case "sms_submit":
//Диалог подтверждения данных на отсылку
//Формируем посылку
$send_url=$gate_url ."?sms_set=send_sms_validator&gate_id=". $gate_id ."&transl=". intval($_POST['translit']). "&from=" .rawurlencode($_POST['sms_from']). "&to=" .rawurlencode($_POST['sms_to']). "&text=" .rawurlencode($_POST['sms_text']). "&code=" .$_POST['scode'];
//Принимаем данные от гейта
$result = '';
$handler = @fopen ($send_url, 'r');
if ($handler) {
while ($line = @fgets($handler,1024)) {
$result .= $line;
}
fclose ($handler);
} else {
die ("Ошибочка вышла");
}
//Обрабатываем приходящую посылку
if (substr($result, 0, 7)=="<error>"){
//В процессе выполнения возникла ошибка
$feed_back=substr($result, 7);
} else {
//Стадартный феед без ошибок. Выдераем необходимые данные
list($sms_from, $sms_to, $sms_text, $sms_number, $sms_translit, $sms_code) = explode("<sms_data ".$gate_id.">",$result);
$feed_back = "<table><form method=\"POST\" action=\"\"><tr><td colspan=\"2\"></td></tr><tr><td width=\"60\">От Кого: </td><td>".$sms_from."</td></tr><tr><td width=\"60\">Кому: </td><td>".$sms_to."</td></tr><tr><td width=\"60\">Текст: </td><td>".$sms_text."</td></tr><tr><td width=\"60\">Символов: </td><td>".strlen($sms_text)." (".$sms_number." СМС)</td></tr><tr><td colspan=\"2\"><input name=\"set\" type=\"hidden\" value=\"sms_send\"><input name=\"sms_to\" type=\"hidden\" value=\"".$sms_to."\"><input name=\"sms_from\" type=\"hidden\" value=\"".$sms_from."\"><input name=\"sms_text\" type=\"hidden\" value=\"".$sms_text."\"><input name=\"translit\" type=\"hidden\" value=\"".intval($sms_translit)."\"><input name=\"scode\" type=\"hidden\" value=\"".$sms_code."\"><input type=\"submit\" value=\"Отправить\" name=\"submit\" /></td></tr>";
}
break;
case "sms_send":
//Отправить СМС
//Формируем посылку
$send_url=$gate_url ."?sms_set=send_mess&gate_id=". $gate_id ."&transl=". intval($_POST['translit']). "&from=" .rawurlencode($_POST['sms_from']). "&to=" .rawurlencode($_POST['sms_to']). "&text=" .rawurlencode($_POST['sms_text']). "&code=" .$_POST['scode'];
//Принимаем данные от гейта
$result = '';
$handler = @fopen ($send_url, 'r');
if ($handler) {
while ($line = @fgets($handler,1024)) {
$result .= $line;
}
fclose ($handler);
} else {
die ("Ошибочка вышла");
}
//Обрабатываем приходящую посылку
if (substr($result, 0, 7)=="<error>"){
//В процессе выполнения возникла ошибка
$feed_back=substr($result, 7);
} else {
//Стадартный феед без ошибок. Выдераем необходимые данные
$feed_back = "СМС упешно отправлена. Спасибо за ипользование нашего шлюза. Просмотреть статус сообщения можно <A HREF=\"?id=".$result."&set=validator\">здесь</A>";
}
break;
case "validator":
//проверка статуса СМС
$feed_back="Проверяем статус СМС";
$send_url=$gate_url ."?sms_set=mess_status&gate_id=". $gate_id ."&code=" .$_POST['scode'];
//Принимаем данные от гейта
$result = '';
$handler = @fopen ($send_url, 'r');
if ($handler) {
while ($line = @fgets($handler,1024)) {
$result .= $line;
}
fclose ($handler);
} else {
die ("Ошибочка вышла");
}
//Обрабатываем приходящую посылку
if (substr($result, 0, 7)=="<error>"){
//В процессе выполнения возникла ошибка
$feed_back=substr($result, 7);
} else {
//Стадартный феед без ошибок. Выдераем необходимые данные
switch ($result){
case "ok":
//СМСка доставлена
$feed_back="СМС успешно доставлена. Спасибо за выбор Нашего сервиса!";
break;
case "wait":
//Статус СМС ещё не получен. Он будет доступен через 10 секунд.
$feed_back="Статус СМС ещё не получен. Он будет доступен через 10 секунд.";
break;
case "bad":
//СМС не доставлена
$feed_back="Ошибка доставки. Скорее всего не правильно указан номер, либо доставка на этот номер не возможна. Вы можете воспользоваться вашим СМС кодом ещё раз.";
break;
default:
//Что-то иное
$feed_back="Незнама что :)";
}//end switch
}
break;
default:
//Нечто :)
die ('test');
break;
}//end switch by set
//---------------------------------------------------------------
//Выводим контент
include ($header_tpl); //Шапка
echo $feed_back; //Контент
include ($footer_tpl); //Подвал
?>