Перейти к содержимому


Отправить смс в транслите


Сообщений в теме: 8

#1 Alexbalamyt

    Новичок

  • Пользователи
  • Pip
  • 7 сообщений

Отправлено 07 Ноябрь 2013 - 23:27

Встал вопрос : как отправить смс в транслите ? т.к. в транслите символов гораздо больше.

Есть сторонний смс-шлюз. Ну я решил вписать код транслита в сам код выполнения php скрипта отправки смс из клиентской базы.


Вот код который отправляет все как есть, все что ему передали в переменной $sms["text"] , то и отправил.
Этот код отправляет и проблем нет.

function send_sms()
{
  global $sms;  
		   $conn = new SoapClient('http://адрес внешнего шлюза );
		   $login = 'логин для подкл. к шлюзу';
		   $password = 'пароль для подкл к шлюзу';
		   $alphaName = $sms["sender"];   // Альфа-имя при отправке смс.
		   $text = $sms["text"];  // подтягивает текст смс из массива
		   // Отправка одиночного сообщения
		   $destAddr = $sms["phone"];  // подтягивает телефон из массива
		   try
		   {
			   $smscIds = $conn->sendSms($login,$password,$alphaName,$destAddr,$text);
		   }   
		   catch (SoapFault $exception)
		   {
			   echo $exception;
		   }	  
}


Добавил в код транслит по переменной $text, уже отказывается работать. Подскажите где напортачил ?

function send_sms()
{
global $sms;  // берем общий массив
$sender = $sms["sender"];  // делаем подмены
$phone = $sms["phone"];
$text = $sms["text"];

$translit = array(

		    'а' => 'a',   'б' => 'b',   'в' => 'v',
		    'г' => 'g',   'д' => 'd',   'е' => 'e',
		    'Э' => 'E',   'Ю' => 'YU',  'Я' => 'YA', // вообщем полная таблица символов.

	    );

	   $text_tran = strtr($text, $translit); // делаем транслитерацию
   
		   $conn = new SoapClient('http://адрес шлюза);
		   $login = 'Логин для подкл к шлюзу';
		   $password = 'пароль для подкл к шлюзу';
		   $alphaName = $sender;
		   $text = $text_tran;   // подставляем текс из переменной транслитерации
		   // Отправка одиночного сообщения
		   $destAddr = $phone; 
		   try
		   {
			   $smscIds = $conn->sendSms($login,$password,$alphaName,$destAddr,$text);
		   }   
		   catch (SoapFault $exception)
		   {
			   echo $exception;
		   }	  


#2 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 08 Ноябрь 2013 - 13:30

У вас и в оригинальном коде и в коде с транслитом "напортачено" одно и то же - нет закрывающей кавычки в адресе шлюза. Это видно даже здесь, по цветовой подсветке кода.

#3 andibrag

    Прежде, чем задать вопрос, продумайте свое решение.

  • Активный пользователь
  • PipPipPip
  • 1 356 сообщений
  • Пол:Мужчина
  • Город:Санкт-Петербург

Отправлено 08 Ноябрь 2013 - 13:32

C кодом не разбирался. Закрывающая кавычка отсутствует в
 $conn = new SoapClient('http://адрес шлюза);

Творческая группа "ТАВР".

www.TAVR.pro Художественная ковка, металлоконструкции.

www.СтолМет.рф Складные столы, стулья и системы для их хранения


#4 andibrag

    Прежде, чем задать вопрос, продумайте свое решение.

  • Активный пользователь
  • PipPipPip
  • 1 356 сообщений
  • Пол:Мужчина
  • Город:Санкт-Петербург

Отправлено 08 Ноябрь 2013 - 13:34

Просмотр сообщенияCbCoder (08 Ноябрь 2013 - 13:30) писал:

У вас и в оригинальном коде и в коде с транслитом "напортачено" одно и то же - нет закрывающей кавычки в адресе шлюза. Это видно даже здесь, по цветовой подсветке кода.
пока писал уже ответили...

Творческая группа "ТАВР".

www.TAVR.pro Художественная ковка, металлоконструкции.

www.СтолМет.рф Складные столы, стулья и системы для их хранения


#5 Alexbalamyt

    Новичок

  • Пользователи
  • Pip
  • 7 сообщений

Отправлено 08 Ноябрь 2013 - 22:22

Да, всем спасибо, разобрался уже.
Все работает и отправляет на транслите.

Сообщение отредактировал Alexbalamyt: 08 Ноябрь 2013 - 22:23


#6 Alexbalamyt

    Новичок

  • Пользователи
  • Pip
  • 7 сообщений

Отправлено 02 Июль 2014 - 00:03

опять поднимаю данную функцию и как-то не работает, при отправке выходит такое, куда копать ? Сам же крон работает норм и выдает "Done"

Parse error: syntax error, unexpected '<' in /mysite.ru/base/include/functions_cron.php(3226) : eval()'d code on line 26

Fatal error: Call to undefined function send_sms() in /mysite.ru/base/include/functions_cron.php on line 3277

Сообщение отредактировал Alexbalamyt: 02 Июль 2014 - 00:04


#7 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 02 Июль 2014 - 08:24

Синтаксическая ошибка в коде, судя по тексту ошибки.

#8 Alexbalamyt

    Новичок

  • Пользователи
  • Pip
  • 7 сообщений

Отправлено 02 Июль 2014 - 23:58

упростил код, до примера который 1-вый в этой ветке. (естественно с исправлениями)

Работает, смс присылает, но криво :
1. при отправке вылазит сообщение на 1 сек об ошибке (см ниже) и затем обновляется страница и пишет рассылки выполнена, а смотришь активные рассылки а смс сразу отправляется в "Провалено"
2. Крон выполняется каждые 15 мин. а смс приходит до того как крон выполнится... о_О, тут вообще я в непонятках ((
Вы крон в новых версиях не меняли в отличии от 1.9.5.



					
					<br />
					
				</div>
				
<script type= ipb.global.registerReputation( 'rep_post_24895', { domLikeStripId: 'like_post_24895', app: 'forums', type: 'pid', typeid: '24895' }, parseInt('0') );

#9 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 03 Июль 2014 - 10:29

1. Ошибка где-то в вашем коде отправки все-таки, судя по тексту.
2. Не помню с какой точно версии, но сейчас первые 10 смс отправляются сразу, а не по крону.





Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 анонимных