View file wapt/SMS/wap/index.php

File size: 10Kb
<?
  include "functions.php";
/**
* Скрипту при помощи метода пост необходимо передать следующие параметры
* 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

//Начало WML-страницы
Header("Content-type: text/vnd.wap.wml");
print "<?xml version=\"1.0\" encoding=\"UTF-8\"?> \n";
?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
<head><meta forua="true" http-equiv="Cache-Control" content="max-age=300"/></head>
<?
//События
switch ($set){
        case "sms_submit":
                //Диалог подтверждения данных на отсылку
                print "<card id=\"sms_submit\" title=\"".k2u("Подтверждение данных")."\">";
                //Формируем посылку
                $_POST['sms_text'] = iconv("UTF-8", "CP1251", $_POST['sms_text']);
                $sms_text = iconv("UTF-8", "CP1251", $sms_text);

                $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'];

/*                print "<p><b>".k2u("От Кого:")."</b>$sms_from<br/>
                                <b>".k2u("Кому:")."</b>$sms_to<br/>
                                <b>".k2u("Текст:")."</b>".k2u($sms_text)."<br/>";
                 print "<b>trans:</b>$translit<br/></p>";
*/
                //Принимаем данные от гейта
                $result = '';
                $handler = @fopen ($send_url, 'r');

                if ($handler) {
                        while ($line = @fgets($handler,1024)) {
                                $result .= $line;
                        }
                        fclose ($handler);

                        //Обрабатываем приходящую посылку
                        if (substr($result, 0, 7)=="<error>"){
                            //В процессе выполнения возникла ошибка
                            print "<p>".k2u(substr($result, 7))."<br/><anchor>".k2u("Назад")."<prev/></anchor></p>";
                        } else {
                          //Стадартный феед без ошибок. Выдераем необходимые данные
                          list($sms_from, $sms_to, $sms_text, $sms_number, $sms_translit, $sms_code) = explode("<sms_data ".$gate_id.">",$result);
                          print "<p><b>".k2u("От Кого:")."</b>$sms_from<br/>
                                <b>".k2u("Кому:")."</b>$sms_to<br/>
                                <b>".k2u("Текст:")."</b>".k2u($sms_text)."<br/>";
                          print strlen($sms_text);
                          print "($sms_number ".k2u("СМС").")<br/></p>";
                          ?>
<p>
<anchor><? print k2u("Отправить") ?>
 <go href="<? print $PHP_SELF ?>" method="post">
  <postfield name="sms_from" value="<? print k2u($sms_from) ?>"/>
  <postfield name="sms_to" value="<? print $sms_to ?>"/>
  <postfield name="sms_text" value="<? print k2u($sms_text) ?>"/>
  <postfield name="translit" value="<? print $translit ?>"/>
  <postfield name="scode" value="<? print $scode ?>"/>
  <postfield name="set" value="sms_send"/>
 </go>
</anchor>
</p>
                       <?
                       }
                } else {
                     print "<p>".k2u("Ошибочка вышла")."<br/><anchor>".k2u("Назад")."<prev/></anchor></p>";
                }
                break;
        case "sms_send":
                //Отправить СМС
                $_POST['sms_text'] = iconv("UTF-8", "CP1251", $_POST['sms_text']);
                $sms_text = iconv("UTF-8", "CP1251", $sms_text);
                print "<card id=\"sms_send\" title=\"".k2u("Отправка SMS")."\">";
                //Формируем посылку
                $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);
                        //Обрабатываем приходящую посылку
                        if (substr($result, 0, 7)=="<error>"){
                            //В процессе выполнения возникла ошибка
                            print "<p>".k2u(substr($result, 7))."</p><br/><anchor>".k2u("Назад")."<prev/></anchor>";
                        } else {
                          //Стадартный феед без ошибок. Выдераем необходимые данные
                          print "<p>".k2u("СМС упешно отправлена. Спасибо за ипользование нашего шлюза. Просмотреть статус сообщения можно ")."<a href=\"".$PHP_SELF."?id=".$result."&amp;set=validator\">".k2u("здесь")."</a><br/><anchor>".k2u("Назад")."<prev/></anchor></p>";
                        }
                } else {
                    print "<p>".k2u("Ошибочка вышла")."<br/><anchor>".k2u("Назад")."<prev/></anchor></p>";
                }
                break;
        case "validator":
                //проверка статуса СМС
                print "<card id=\"validator\" title=\"".k2u("Проверка статуса SMS")."\">";
                print "<p>".k2u("Проверяем статус СМС")."</p>";
                $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);
                        //Обрабатываем приходящую посылку
                        if (substr($result, 0, 7)=="<error>"){
                            //В процессе выполнения возникла ошибка
                           print "<p>".k2u(substr($result, 7))."<br/><anchor>".k2u("Назад")."<prev/></anchor></p>";
                        } else {
                          //Стадартный феед без ошибок. Выдераем необходимые данные
                          switch ($result){
                                case "ok":
                                        //СМСка доставлена
                                        print "<p>".k2u("СМС успешно доставлена. Спасибо за выбор Нашего сервиса!")."<br/><anchor>".k2u("Назад")."<prev/></anchor></p>";
                                        break;
                                case "wait":
                                        //Статус СМС ещё не получен. Он будет доступен через 10 секунд.
                                        print "<p>".k2u("Статус СМС ещё не получен. Он будет доступен через 10 секунд.")."<br/><anchor>".k2u("Назад")."<prev/></anchor></p>";
                                        break;
                                case "bad":
                                        //СМС не доставлена
                                        print "<p>".k2u("Ошибка доставки. Скорее всего не правильно указан номер, либо доставка на этот номер не возможна. Вы можете воспользоваться вашим СМС кодом ещё раз.")."<br/><anchor>".k2u("Назад")."<prev/></anchor></p>";
                                        break;
                                default:
                                        //Что-то иное
                                        print "<p>".k2u("Незнама что :)")."<br/><anchor>".k2u("Назад")."<prev/></anchor></p>";
                          }//end switch
                        }
                } else {
                    print "<p>".k2u("Ошибочка вышла")."</p>";
                }
                break;
        default:
        ?>
<card id="send" title="<? print k2u("Отправка SMS") ?>">
<p>
<b><? print k2u("От Кого:") ?></b><input size="18" maxlength="18" name="sms_from" value=""/>
<br/>
<small><? print k2u("* Это поле может состоять из 11 символов, либо из 18 цифр. Можно использовать только латинские символы, цифры, знаки тире,! , а также точку. Руские буквы будут переведены в транслит. \"+\" в начале номера подставится автоматически.") ?></small>
<br/>
<b><? print k2u("Кому:") ?></b><input format="*N" size="11" maxlength="11" name="sms_to" value=""/>
<br/>
<small><? print k2u("* Вводите номер в международном формате без плюса в начале. Пример, 79998887766.") ?></small>
<br/>
<b><? print k2u("Сообщение:") ?></b>
<small><? print k2u("* максимальная длина для сообщения на русском - 210, на латинице 480 символов") ?></small>
<br/>
<input size="50" maxlength="480" name="sms_text" value=""/>
<br/>
<select name="translit">
  <option value="1"><? print k2u("без транслита") ?></option>
  <option value="0"><? print k2u("транслитом") ?></option>
</select>
<br/>
<b><? print k2u("Cекретный код") ?></b><br/><input size="20" maxlength="20" name="scode" value=""/>
<br/>
<small><? print k2u("Для получения секретного кода отправь ") ?><b>zam+2699</b><? print k2u(" на номер ") ?><b>1045</b>.
<br/>
<a href="http://send.sms-me.ru/about.html" target="blank"><? print k2u("подробнее...") ?></a></small>
</p>
<p>
<anchor><? print k2u("Отправить") ?>
 <go href="<? print $PHP_SELF ?>" method="post">
  <postfield name="sms_from" value="$(sms_from)"/>
  <postfield name="sms_to" value="$(sms_to)"/>
  <postfield name="sms_text" value="$(sms_text)"/>
  <postfield name="translit" value="$(translit)"/>
  <postfield name="scode" value="$(scode)"/>
  <postfield name="set" value="sms_submit"/>
 </go>
</anchor>
</p>
<?
       break;
}//end switch by set
?>
</card></wml>