Security Teams



:::
Страницы: (5) [1] 2 3 ... Последняя » ( Перейти к первому непрочитанному сообщению ) Закрытая темаСоздание новой темы

> Пишем скрипт отправки SMS на PHP (часть 2), (c) WASABY
WASABY
Дата 21.10.2005 - 23:00
Цитировать сообщение
Offline



.:EL TERRIBLE:.
******

Профиль
Группа: -editors-
Сообщений: 1794
Пользователь №: 144
Регистрация: 2.04.2005



Рейтинг:
(70%) XXXX-


И так, как я и обещал во воторой части стаьи "Пишем скрипт отправки SMS на PHP", мы с вами напишем транcлит для нашей прогрмы.

И так приступим

Все, что нам нужно это отредактировать и добавить один java*script в нашу "главную страницу" (inde.html).
В самое начало добавлем выше упомянутый скрипт:
Код
<script language="java*script"">
<!--
var maxLen=160;
 function setLen(dcs)
{
  if( dcs == 0 )
  {
    maxLen = 160;
  }
  else
  {
    maxLen = 70;
  }
  checkLen();
}

function setmaxlng()
{
document.text.len.value = maxLength;
}

function checkLen()
{
   if (document.all) {
      str = text.sms.value;
      len = str.length;
   }
   else{
       str = document.forms.text.sms.value;
       len = document.forms.text.name.textLength;
   }
   var rusLen = 0;
   if(document.forms.text.dcs[1].checked){
       var re = /[ёжцчшюя??]/i;
       var re1 = /[щ]/i;
       for(i=0;i<=len;i++){
           if(re.test(str.substr(i,1))){
           rusLen = rusLen +1;
           }
           if(re1.test(str.substr(i,1))){
           rusLen = rusLen +2;
           }
       }
   }
   fullLen = maxLen - rusLen;
  if ( len > fullLen) document.forms.text.sms.value = str.substring(0,fullLen);
  document.forms.text.len.value = (fullLen - document.forms.text.sms.value.length);
  document.forms.text.sms.focus();
}
// ------------------------------------Start garbage-----------------------------------------
// Translit:
// -------------------------- CONVERT TO RUS --------------------------
// 1 character letters
eng_table = "ABVGDEZIJKLMNOPRSTUFHXCYabvgdezijklmnoprstufhxcy'";
rus_table = "АБВГДЕЗИЙКЛМНОПРСТУФХХЦЫабвгдезийклмнопрстуфххцыь";
// 2 character letters
eng_table2 = "YOJOZHCHSHYUJUYAJAyojozhchshyujuyajaYoYoZhChShYuJuYaJa";
rus_table2 = "ЁЁЖЧШЮЮЯЯёёжчшююяяЁЁЖЧШЮЮЯЯ";

function translit2win(str)
{
var len = str.length;
var new_str="";

for (i = 0; i < len; i++)
{
 // Check for 2-character letters
 is2char=false;
 if (i < len-1)
 {
  for(j = 0; j < rus_table2.length; j++)
  {
   if(str.substr(i, 2) == eng_table2.substr(j*2,2))
   {
    new_str+= rus_table2.substr(j, 1);
    i++;
    is2char=true;
    break;
   }
  }
 }

 if(!is2char)
 {
  // Convert one-character letter
  var c = str.substr(i, 1);
  var pos = eng_table.indexOf(c);
  if (pos < 0)
   new_str+= c;
  else
   new_str+= rus_table.substr(pos, 1);
 }
}
return new_str;
}
 

// -------------------------- CONVERT TO LAT --------------------------
lat_eng_table = "ABVGDEJZIYKLMNOPRSTUFH4CIabvgdejziyklmnoprstufh4ci'";
lat_rus_table = "АБВГДЕЖЗИЙКЛМНОПРСТУФХЧЦЫабвгдежзийклмнопрстуфхчцыь";

function translit2lat(str)
{
var len = str.length;
var new_str="";

for (i = 0; i < len; i++)
{
 // Check for 2-character letters
 is2char=false;
 if (i < len)
 {
  if(str.substr(i, 1) == 'Ю')
  {
   new_str += 'YU ';
   i++;
   is2char=true;
  }
  if(str.substr(i, 1) == 'ю')
  {
   new_str += 'yu ';
   i++;
   is2char=true;
  }
 
  if(str.substr(i, 1) == 'Я')
  {
   new_str += 'YA ';
   i++;
   is2char=true;
  }
  if(str.substr(i, 1) == 'я')
  {
//    alert("1"+str.substr(i, 1)+"1");
   new_str += 'ya ';
   i++;
   is2char=true;
  }
 }
 // Convert one-character letter
 if(!is2char)
 {
  var c = str.substr(i, 1);
  var pos = lat_rus_table.indexOf(c);
  if (pos < 0)
   new_str+= c;
  else
   new_str+= lat_eng_table.substr(pos, 1);
 }
}
return new_str;
}
// ------------------------------------end garbage-----------------------------------------
function openTranslit()
{
var myUrl = "translit.html";
myWin=window.open(myUrl, "wind1", "width=800,height=745,resizable=no,scrollbars=no,menubar=no");
}

// *********************************************************************************
/*var rus_lr2 = ('Е-е-О-о-Ё-Ё-Ё-Ё-Ж-Ж-Ч-Ч-Ш-Ш-Щ-Щ-Ъ-Ь-Э-Э-Ю-Ю-Я-Я-Я-Я-ё-ё-ж-ч-ш-щ-э-ю-я-я').split('-');
var lat_lr2 = ('/E-/e-/O-/o-ЫO-Ыo-ЙO-Йo-ЗH-Зh-ЦH-Цh-СH-Сh-ШH-Шh-ъ'+String.fromCharCode(35)+'-ь'+String.fromCharCode(39)+'-ЙE-Йe-ЙU-Йu-ЙA-Йa-ЫA-Ыa-ыo-йo-зh-цh-сh-шh-йe-йu-йa-ыa').split('-');
var rus_lr1 = ('А-Б-В-Г-Д-Е-З-И-Й-К-Л-М-Н-О-П-Р-С-Т-У-Ф-Х-Х-Ц-Щ-Ы-Я-а-б-в-г-д-е-з-и-й-к-л-м-н-о-п-р-с-т-у-ф-х-х-ц-щ-ъ-ы-ь-ь-я').split('-');
var lat_lr1 = ('A-B-V-G-D-E-Z-I-J-K-L-M-N-O-P-R-S-T-U-F-H-X-C-W-Y-Q-a-b-v-g-d-e-z-i-j-k-l-m-n-o-p-r-s-t-u-f-h-x-c-w-'+String.fromCharCode(35)+'-y-'+String.fromCharCode(39)+'-'+String.fromCharCode(96)+'-q').split('-');
var rus_rl = ('А-Б-В-Г-Д-Е-Ё-Ж-З-И-Й-К-Л-М-Н-О-П-Р-С-Т-У-Ф-Х-Ц-Ч-Ш-Щ-Ъ-Ы-Ь-Э-Ю-Я-а-б-в-г-д-е-ё-ж-з-и-й-к-л-м-н-о-п-р-с-т-у-ф-х-ц-ч-ш-щ-ъ-ы-ь-э-ю-я').split('-');
var lat_rl = ('A-B-V-G-D-E-JO-ZH-Z-I-J-K-L-M-N-O-P-R-S-T-U-F-H-C-CH-SH-SHH-'+String.fromCharCode(35)+String.fromCharCode(35)+'-Y-'+String.fromCharCode(39)+String.fromCharCode(39)+'-JE-JU-JA-a-b-v-g-d-e-jo-zh-z-i-j-k-l-m-n-o-p-r-s-t-u-f-h-c-ch-sh-shh-'+String.fromCharCode(35)+'-y-'+String.fromCharCode(39)+'-je-ju-ja').split('-');

var lat = ('/E_/e_/O_/ o_Шh_Йo_Зh_Цh_Сh_Йe_Йu_Йa_Ыo_Ыu_Ыa_ШH_ЙO_ЗH_ЦH_СH_ЙE_ЙU_ЙA_ЫO_ЫU_ЫA_A_B_V_G_D_E_Z_I_J_K_L_M_N_O_P_R_
S_T_U_F_X_C_ъ#_Y_ь\'_H_W_Q_шh_йo_зh_цh_сh_йe_йu_йa_ыo_ыa_a_b_v_g_d_e_z_i_j_k_l_m_n_o_p_r_s_t_u_f_x_c_#_y_\'_h_w_q').split('_');
var rus = (& #39;E_e_O_o_Щ_Ё_Ж_Ч_Ш_Э_Ю_Я_Ё_Ю_Я_Щ_Ё_Ж_Ч_Ш_Э_Ю_Я_Ё_Ю_Я_А_Б_В_Г_Д_Е_З_И_Й_К_Л_М_Н_О_П_Р_С_Т_У_Ф_Х_Ц_
Ъ_Ы_Ь_Х_Щ_Я_щ_ё_ж_ч_ш_э_ю_я_ё_я_а_б_в_г_д_е_з_и_й_к_л_м_н_о_п_р_с_т_у_ф_х_ц_ъ_ы_ь_х_щ_я').split('_');
var rus2 = (& #39;Щ_Ё_Ж_Ч_Ш_Э_Ю_Я_А_Б_В_Г_Д_Е_З_И_Й_К_Л_М_Н_О_П_Р_С_Т_У_Ф_Х_Ц_Ъ_Ы_Ь_щ_ё_ж_ч_ш_э_ю_я_а_б_в_г_д_е_з_
и_й_к_л_м_н_о_п_р_с_т_у_ф_х_ц_ъ_ы_ь').split('_');
var lat2 = ('SHH_JO_ZH_CH_SH_JE_JU_JA_A_B_V_G_D_E_Z_I_J_K_L_M_N_O_P_R_S_T_U_F_X_C_##_Y_\'\'_shh_jo_zh_ch_sh_je_ju_ja_a_b_v_g_d_e_z_i_j_k_l_m_n_o_p_r_s_t_u_f_x_c_#_y_\'').split('_');
*/

var rus_lr2 = ('Е-е-О-о-Ё-Ё-Ё-Ё-Ж-Ж-Ч-Ч-Ш-Ш-Щ-Щ-Ъ-Ь-Э-Э-Ю-Ю-Я-Я-Я-Я-ё-ё-ж-ч-ш-щ-э-ю-я-я').split('-');
var lat_lr2 = ('/E-/e-/O-/o-ЫO-Ыo-ЙO-Йo-ЗH-Зh-ЦH-Цh-СH-Сh-ШH-Шh-ъ'+String.fromCharCode(35)+'-ь'+String.fromCharCode(39)+'-ЙE-Йe-ЙU-Йu-ЙA-Йa-ЫA-Ыa-ыo-йo-зh-цh-сh-шh-йe-йu-йa-ыa').split('-');
var rus_lr1 = ('А-Б-В-Г-Д-Е-З-И-Й-К-Л-М-Н-О-П-Р-С-Т-У-Ф-Х-Ц-Щ-Ы-Я-а-б-в-г-д-е-з-и-й-к-л-м-н-о-п-р-с-т-у-ф-х-х-ц-щ-ъ-ы-ь-ь-я').split('-');
var lat_lr1 = ('A-B-V-G-D-E-Z-I-J-K-L-M-N-O-P-R-S-T-U-F-H-C-W-Y-Q-a-b-v-g-d-e-z-i-j-k-l-m-n-o-p-r-s-t-u-f-h-x-c-w-'+String.fromCharCode(35)+'-y-'+String.fromCharCode(39)+'-'+String.fromCharCode(96)+'-q').split('-');
var rus_rl = ('А-Б-В-Г-Д-Е-Ё-Ж-З-И-Й-К-Л-М-Н-О-П-Р-С-Т-У-Ф-Х-Ц-Ч-Ш-Щ-Ъ-Ы-Ь-Э-Ю-Я-а-б-в-г-д-е-ё-ж-з-и-й-к-л-м-н-о-п-р-с-т-у-ф-х-ц-ч-ш-щ-ъ-ы-ь-э-ю-я').split('-');
var lat_rl = ('A-B-V-G-D-E-JO-ZH-Z-I-J-K-L-M-N-O-P-R-S-T-U-F-H-C-CH-SH-SHH-'+String.fromCharCode(35)+String.fromCharCode(35)+'-Y-'+String.fromCharCode(39)+String.fromCharCode(39)+'-JE-JU-JA-a-b-v-g-d-e-jo-zh-z-i-j-k-l-m-n-o-p-r-s-t-u-f-h-c-ch-sh-shh-'+String.fromCharCode(35)+'-y-'+String.fromCharCode(39)+'-je-ju-ja').split('-');

var lat = ('/E_/e_/O_/ o_Шh_Йo_Зh_Цh_Сh_Йe_Йu_Йa_Ыo_Ыu_Ыa_ШH_ЙO_ЗH_ЦH_СH_ЙE_ЙU_ЙA_ЫO_ЫU_ЫA_A_B_V_G_D_E_Z_I_J_K_L_M_N_O_P_R_
S_T_U_F_H_C_ъ#_Y_ь\'_H_W_Q_шh_йo_зh_цh_сh_йe_йu_йa_ыo_ыa_a_b_v_g_d_e_z_i_j_k_l_m_n_o_p_r_s_t_u_f_h_c_#_y_\'_h_w_q').split('_');
var rus = (& #39;E_e_O_o_Щ_Ё_Ж_Ч_Ш_Э_Ю_Я_Ё_Ю_Я_Щ_Ё_Ж_Ч_Ш_Э_Ю_Я_Ё_Ю_Я_А_Б_В_Г_Д_Е_З_И_Й_К_Л_М_Н_О_П_Р_С_Т_У_Ф_Х_Ц_
Ъ_Ы_Ь_Х_Щ_Я_щ_ё_ж_ч_ш_э_ю_я_ё_я_а_б_в_г_д_е_з_и_й_к_л_м_н_о_п_р_с_т_у_ф_х_ц_ъ_ы_ь_х_щ_я').split('_');
var rus2 = (& #39;Щ_Ё_Ж_Ч_Ш_Э_Ю_Я_А_Б_В_Г_Д_Е_З_И_Й_К_Л_М_Н_О_П_Р_С_Т_У_Ф_Х_Ц_Ъ_Ы_Ь_щ_ё_ж_ч_ш_э_ю_я_а_б_в_г_д_е_з_
и_й_к_л_м_н_о_п_р_с_т_у_ф_х_ц_ъ_ы_ь').split('_');
var lat2 = ('SHH_JO_ZH_CH_SH_JE_JU_JA_A_B_V_G_D_E_Z_I_J_K_L_M_N_O_P_R_S_T_U_F_H_C_##_Y_\'\'_shh_jo_zh_ch_sh_je_ju_ja_a_b_v_g_d_e_z_i_j_k_l_m_n_o_p_r_s_t_u_f_h_c_#_y_\'').split('_');

var translitown=0;
var processhtmltags = 1; // switch to latin when the html tag <...> is typed in
var processbbcodetags = 1; // switch to latin when the bbcode tag [...] is typed in
var language = 0;
var maxtransliterationlength=3;
var lenreafontsize = 14; // WAENING: the value is defined in the main.css !!!
var textreafontwidth = 7; // The width of the text is supposed to be 7 !!!

var prelanguage = 0;

function translatesymboltocyrillic(txt)
{
for (var ii=0; ii<lat.length; ii++)
{
 pos = txt.length>lat[ii].length?(txt.length-lat[ii].length):0;
 if (lat[ii]==txt.substr(pos,txt.length-pos)) {
  return txt.substr(0,txt.length-lat[ii].length)+rus[ii];
 }
}
return txt;
}
function translatesymboltolatin(symb)
{
for (var ii=0;ii<rus2.length;ii++)
{
 if (rus2[ii]==symb)
 return lat2[ii];
}
return symb;
}

function translateAlltoCyrillic()
{
var inloop=1;
tt = window.document.text.sms;
p1 = tt.selectionStart; p2 = tt.selectionEnd;
var preval = ""; var postval="";
if (p1==p2) {txt = tt.value;}
else
{
 preval = tt.value.substring(0, p1);
 txt = tt.value.substring(p1,p2);
 postval = tt.value.substring(p2);
}
var txtnew = "";
if ((!processhtmltags)&&(!processbbcodetags))
{
 txtnew = translateStringtoCyrillic(txt);
}
else
{
 var htt1,pbb1,t1,t2,txt1,txt2,tag_open,tag_close;
 var noinputtag=0;
 if (processhtmltags) {tag_open="<";tag_close=">";}
 if (processbbcodetags) {tag_open="[";tag_close="]";}
 while(inloop)
 {
  if (processhtmltags&&processbbcodetags)
  {
   htt1 = txt.indexOf("<");
   pbb1 = txt.indexOf("[");
   if (pbb1==htt1) {noinputtag=1}
   if (pbb1==-1) {pbb1=txt.length;}
   if (htt1==-1) {htt1=txt.length;}  
   if (htt1<pbb1) {t1=htt1; tag_close=">";} else {t1=pbb1; tag_close="]";}
  }
  else
  {
   t1 = txt.indexOf(tag_open);
   if (t1==-1) noinputtag=1;
  }
  if (noinputtag) {inloop=0;t1=txt.length;t2=txt.length;}
  else
  {
   txt2=txt.substring(t1,txt.length);
   t2=txt2.indexOf(tag_close);
   //if (t2==-1) {t2=txt.length; inloop=0;} else {t2=t2+t1+1};
   if (t2==-1) {t2=t1+1} else {t2=t2+t1+1};
  }
  txt1 = txt.substring(0,t1);
  txt2 = txt.substring(t1,t2);
  txt = txt.substring(t2,txt.length);
  txtnew = txtnew+translateStringtoCyrillic(txt1)+txt2;  
 }
}
tt.value = preval+txtnew+postval;
if (p1!=p2) {tt.setSelectionRange(p1+txtnew.length,p1+txtnew.length);}
tt.focus();
return true;
}
function translateStringtoCyrillic(thestringlat)
{
var symbb,fromm,howmuch,thestringcyr="";
for (kk=0;kk<thestringlat.length;kk++)
{
 howmuch = thestringcyr.length>maxtransliterationlength?maxtransliterationlength:thestringcyr.length;
 fromm = thestringcyr.length-howmuch;
 symbbb = thestringlat.substr(kk,1);
 symbbb = translatesymboltocyrillic(thestringcyr.substr(fromm,howmuch)+symbbb);
 thestringcyr = thestringcyr.substr(0,fromm)+symbbb;  
}
return thestringcyr;
}
function translateAlltoLatin()
{
tt = window.document.text.sms;
p1 = tt.selectionStart; p2 = tt.selectionEnd;
var preval = ""; var postval="";
if (p1==p2) {txt = tt.value;}
else
{
 preval = tt.value.substring(0, p1);
 txt = tt.value.substring(p1,p2);
 postval = tt.value.substring(p2);
}
txtnew="";
var symb = "";
for (kk=0;kk<txt.length;kk++)
{
 symb = translatesymboltolatin(txt.substr(kk,1));
 txtnew = txtnew.substr(0,txtnew.length) + symb;
}
tt.value = preval+txtnew+postval;
if (p1!=p2) {tt.setSelectionRange(p1+txtnew.length,p1+txtnew.length);}
tt.focus();
return true;
}

//-->
</script>

А затем немного редактируем и саму форму отправки.
В итоге наш файл index.html должен иметь такой вид (вместе с java*script'ом транслита):
Код
<html>
<head>
<meta HTTP-EQUIV="content-type" CONTENT="text/html; charset=koi8-r">
<title>SMS</title>
<script language="java*script"">
<!--
var maxLen=160;
 function setLen(dcs)
{
  if( dcs == 0 )
  {
    maxLen = 160;
  }
  else
  {
    maxLen = 70;
  }
  checkLen();
}

function setmaxlng()
{
document.text.len.value = maxLength;
}

function checkLen()
{
   if (document.all) {
      str = text.sms.value;
      len = str.length;
   }
   else{
       str = document.forms.text.sms.value;
       len = document.forms.text.name.textLength;
   }
   var rusLen = 0;
   if(document.forms.text.dcs[1].checked){
       var re = /[ёжцчшюя??]/i;
       var re1 = /[щ]/i;
       for(i=0;i<=len;i++){
           if(re.test(str.substr(i,1))){
           rusLen = rusLen +1;
           }
           if(re1.test(str.substr(i,1))){
           rusLen = rusLen +2;
           }
       }
   }
   fullLen = maxLen - rusLen;
  if ( len > fullLen) document.forms.text.sms.value = str.substring(0,fullLen);
  document.forms.text.len.value = (fullLen - document.forms.text.sms.value.length);
  document.forms.text.sms.focus();
}
// ------------------------------------Start garbage-----------------------------------------
// Translit:
// -------------------------- CONVERT TO RUS --------------------------
// 1 character letters
eng_table = "ABVGDEZIJKLMNOPRSTUFHXCYabvgdezijklmnoprstufhxcy'";
rus_table = "АБВГДЕЗИЙКЛМНОПРСТУФХХЦЫабвгдезийклмнопрстуфххцыь";
// 2 character letters
eng_table2 = "YOJOZHCHSHYUJUYAJAyojozhchshyujuyajaYoYoZhChShYuJuYaJa";
rus_table2 = "ЁЁЖЧШЮЮЯЯёёжчшююяяЁЁЖЧШЮЮЯЯ";

function translit2win(str)
{
var len = str.length;
var new_str="";

for (i = 0; i < len; i++)
{
 // Check for 2-character letters
 is2char=false;
 if (i < len-1)
 {
  for(j = 0; j < rus_table2.length; j++)
  {
   if(str.substr(i, 2) == eng_table2.substr(j*2,2))
   {
    new_str+= rus_table2.substr(j, 1);
    i++;
    is2char=true;
    break;
   }
  }
 }

 if(!is2char)
 {
  // Convert one-character letter
  var c = str.substr(i, 1);
  var pos = eng_table.indexOf(c);
  if (pos < 0)
   new_str+= c;
  else
   new_str+= rus_table.substr(pos, 1);
 }
}
return new_str;
}
 

// -------------------------- CONVERT TO LAT --------------------------
lat_eng_table = "ABVGDEJZIYKLMNOPRSTUFH4CIabvgdejziyklmnoprstufh4ci'";
lat_rus_table = "АБВГДЕЖЗИЙКЛМНОПРСТУФХЧЦЫабвгдежзийклмнопрстуфхчцыь";

function translit2lat(str)
{
var len = str.length;
var new_str="";

for (i = 0; i < len; i++)
{
 // Check for 2-character letters
 is2char=false;
 if (i < len)
 {
  if(str.substr(i, 1) == 'Ю')
  {
   new_str += 'YU ';
   i++;
   is2char=true;
  }
  if(str.substr(i, 1) == 'ю')
  {
   new_str += 'yu ';
   i++;
   is2char=true;
  }
 
  if(str.substr(i, 1) == 'Я')
  {
   new_str += 'YA ';
   i++;
   is2char=true;
  }
  if(str.substr(i, 1) == 'я')
  {
//    alert("1"+str.substr(i, 1)+"1");
   new_str += 'ya ';
   i++;
   is2char=true;
  }
 }
 // Convert one-character letter
 if(!is2char)
 {
  var c = str.substr(i, 1);
  var pos = lat_rus_table.indexOf(c);
  if (pos < 0)
   new_str+= c;
  else
   new_str+= lat_eng_table.substr(pos, 1);
 }
}
return new_str;
}
// ------------------------------------end garbage-----------------------------------------
function openTranslit()
{
var myUrl = "translit.html";
myWin=window.open(myUrl, "wind1", "width=800,height=745,resizable=no,scrollbars=no,menubar=no");
}

// *********************************************************************************
/*var rus_lr2 = ('Е-е-О-о-Ё-Ё-Ё-Ё-Ж-Ж-Ч-Ч-Ш-Ш-Щ-Щ-Ъ-Ь-Э-Э-Ю-Ю-Я-Я-Я-Я-ё-ё-ж-ч-ш-щ-э-ю-я-я').split('-');
var lat_lr2 = ('/E-/e-/O-/o-ЫO-Ыo-ЙO-Йo-ЗH-Зh-ЦH-Цh-СH-Сh-ШH-Шh-ъ'+String.fromCharCode(35)+'-ь'+String.fromCharCode(39)+'-ЙE-Йe-ЙU-Йu-ЙA-Йa-ЫA-Ыa-ыo-йo-зh-цh-сh-шh-йe-йu-йa-ыa').split('-');
var rus_lr1 = ('А-Б-В-Г-Д-Е-З-И-Й-К-Л-М-Н-О-П-Р-С-Т-У-Ф-Х-Х-Ц-Щ-Ы-Я-а-б-в-г-д-е-з-и-й-к-л-м-н-о-п-р-с-т-у-ф-х-х-ц-щ-ъ-ы-ь-ь-я').split('-');
var lat_lr1 = ('A-B-V-G-D-E-Z-I-J-K-L-M-N-O-P-R-S-T-U-F-H-X-C-W-Y-Q-a-b-v-g-d-e-z-i-j-k-l-m-n-o-p-r-s-t-u-f-h-x-c-w-'+String.fromCharCode(35)+'-y-'+String.fromCharCode(39)+'-'+String.fromCharCode(96)+'-q').split('-');
var rus_rl = ('А-Б-В-Г-Д-Е-Ё-Ж-З-И-Й-К-Л-М-Н-О-П-Р-С-Т-У-Ф-Х-Ц-Ч-Ш-Щ-Ъ-Ы-Ь-Э-Ю-Я-а-б-в-г-д-е-ё-ж-з-и-й-к-л-м-н-о-п-р-с-т-у-ф-х-ц-ч-ш-щ-ъ-ы-ь-э-ю-я').split('-');
var lat_rl = ('A-B-V-G-D-E-JO-ZH-Z-I-J-K-L-M-N-O-P-R-S-T-U-F-H-C-CH-SH-SHH-'+String.fromCharCode(35)+String.fromCharCode(35)+'-Y-'+String.fromCharCode(39)+String.fromCharCode(39)+'-JE-JU-JA-a-b-v-g-d-e-jo-zh-z-i-j-k-l-m-n-o-p-r-s-t-u-f-h-c-ch-sh-shh-'+String.fromCharCode(35)+'-y-'+String.fromCharCode(39)+'-je-ju-ja').split('-');

var lat = ('/E_/e_/O_/ o_Шh_Йo_Зh_Цh_Сh_Йe_Йu_Йa_Ыo_Ыu_Ыa_ШH_ЙO_ЗH_ЦH_СH_ЙE_ЙU_ЙA_ЫO_ЫU_ЫA_A_B_V_G_D_E_Z_I_J_K_L_M_N_O_P_R_
S_T_U_F_X_C_ъ#_Y_ь\'_H_W_Q_шh_йo_зh_цh_сh_йe_йu_йa_ыo_ыa_a_b_v_g_d_e_z_i_j_k_l_m_n_o_p_r_s_t_u_f_x_c_#_y_\'_h_w_q').split('_');
var rus = (& #39;E_e_O_o_Щ_Ё_Ж_Ч_Ш_Э_Ю_Я_Ё_Ю_Я_Щ_Ё_Ж_Ч_Ш_Э_Ю_Я_Ё_Ю_Я_А_Б_В_Г_Д_Е_З_И_Й_К_Л_М_Н_О_П_Р_С_Т_У_Ф_Х_Ц_
Ъ_Ы_Ь_Х_Щ_Я_щ_ё_ж_ч_ш_э_ю_я_ё_я_а_б_в_г_д_е_з_и_й_к_л_м_н_о_п_р_с_т_у_ф_х_ц_ъ_ы_ь_х_щ_я').split('_');
var rus2 = (& #39;Щ_Ё_Ж_Ч_Ш_Э_Ю_Я_А_Б_В_Г_Д_Е_З_И_Й_К_Л_М_Н_О_П_Р_С_Т_У_Ф_Х_Ц_Ъ_Ы_Ь_щ_ё_ж_ч_ш_э_ю_я_а_б_в_г_д_е_з_
и_й_к_л_м_н_о_п_р_с_т_у_ф_х_ц_ъ_ы_ь').split('_');
var lat2 = ('SHH_JO_ZH_CH_SH_JE_JU_JA_A_B_V_G_D_E_Z_I_J_K_L_M_N_O_P_R_S_T_U_F_X_C_##_Y_\'\'_shh_jo_zh_ch_sh_je_ju_ja_a_b_v_g_d_e_z_i_j_k_l_m_n_o_p_r_s_t_u_f_x_c_#_y_\'').split('_');
*/

var rus_lr2 = ('Е-е-О-о-Ё-Ё-Ё-Ё-Ж-Ж-Ч-Ч-Ш-Ш-Щ-Щ-Ъ-Ь-Э-Э-Ю-Ю-Я-Я-Я-Я-ё-ё-ж-ч-ш-щ-э-ю-я-я').split('-');
var lat_lr2 = ('/E-/e-/O-/o-ЫO-Ыo-ЙO-Йo-ЗH-Зh-ЦH-Цh-СH-Сh-ШH-Шh-ъ'+String.fromCharCode(35)+'-ь'+String.fromCharCode(39)+'-ЙE-Йe-ЙU-Йu-ЙA-Йa-ЫA-Ыa-ыo-йo-зh-цh-сh-шh-йe-йu-йa-ыa').split('-');
var rus_lr1 = ('А-Б-В-Г-Д-Е-З-И-Й-К-Л-М-Н-О-П-Р-С-Т-У-Ф-Х-Ц-Щ-Ы-Я-а-б-в-г-д-е-з-и-й-к-л-м-н-о-п-р-с-т-у-ф-х-х-ц-щ-ъ-ы-ь-ь-я').split('-');
var lat_lr1 = ('A-B-V-G-D-E-Z-I-J-K-L-M-N-O-P-R-S-T-U-F-H-C-W-Y-Q-a-b-v-g-d-e-z-i-j-k-l-m-n-o-p-r-s-t-u-f-h-x-c-w-'+String.fromCharCode(35)+'-y-'+String.fromCharCode(39)+'-'+String.fromCharCode(96)+'-q').split('-');
var rus_rl = ('А-Б-В-Г-Д-Е-Ё-Ж-З-И-Й-К-Л-М-Н-О-П-Р-С-Т-У-Ф-Х-Ц-Ч-Ш-Щ-Ъ-Ы-Ь-Э-Ю-Я-а-б-в-г-д-е-ё-ж-з-и-й-к-л-м-н-о-п-р-с-т-у-ф-х-ц-ч-ш-щ-ъ-ы-ь-э-ю-я').split('-');
var lat_rl = ('A-B-V-G-D-E-JO-ZH-Z-I-J-K-L-M-N-O-P-R-S-T-U-F-H-C-CH-SH-SHH-'+String.fromCharCode(35)+String.fromCharCode(35)+'-Y-'+String.fromCharCode(39)+String.fromCharCode(39)+'-JE-JU-JA-a-b-v-g-d-e-jo-zh-z-i-j-k-l-m-n-o-p-r-s-t-u-f-h-c-ch-sh-shh-'+String.fromCharCode(35)+'-y-'+String.fromCharCode(39)+'-je-ju-ja').split('-');

var lat = ('/E_/e_/O_/ o_Шh_Йo_Зh_Цh_Сh_Йe_Йu_Йa_Ыo_Ыu_Ыa_ШH_ЙO_ЗH_ЦH_СH_ЙE_ЙU_ЙA_ЫO_ЫU_ЫA_A_B_V_G_D_E_Z_I_J_K_L_M_N_O_P_R_
S_T_U_F_H_C_ъ#_Y_ь\'_H_W_Q_шh_йo_зh_цh_сh_йe_йu_йa_ыo_ыa_a_b_v_g_d_e_z_i_j_k_l_m_n_o_p_r_s_t_u_f_h_c_#_y_\'_h_w_q').split('_');
var rus = (& #39;E_e_O_o_Щ_Ё_Ж_Ч_Ш_Э_Ю_Я_Ё_Ю_Я_Щ_Ё_Ж_Ч_Ш_Э_Ю_Я_Ё_Ю_Я_А_Б_В_Г_Д_Е_З_И_Й_К_Л_М_Н_О_П_Р_С_Т_У_Ф_Х_Ц_
Ъ_Ы_Ь_Х_Щ_Я_щ_ё_ж_ч_ш_э_ю_я_ё_я_а_б_в_г_д_е_з_и_й_к_л_м_н_о_п_р_с_т_у_ф_х_ц_ъ_ы_ь_х_щ_я').split('_');
var rus2 = (& #39;Щ_Ё_Ж_Ч_Ш_Э_Ю_Я_А_Б_В_Г_Д_Е_З_И_Й_К_Л_М_Н_О_П_Р_С_Т_У_Ф_Х_Ц_Ъ_Ы_Ь_щ_ё_ж_ч_ш_э_ю_я_а_б_в_г_д_е_з_
и_й_к_л_м_н_о_п_р_с_т_у_ф_х_ц_ъ_ы_ь').split('_');
var lat2 = ('SHH_JO_ZH_CH_SH_JE_JU_JA_A_B_V_G_D_E_Z_I_J_K_L_M_N_O_P_R_S_T_U_F_H_C_##_Y_\'\'_shh_jo_zh_ch_sh_je_ju_ja_a_b_v_g_d_e_z_i_j_k_l_m_n_o_p_r_s_t_u_f_h_c_#_y_\'').split('_');

var translitown=0;
var processhtmltags = 1; // switch to latin when the html tag <...> is typed in
var processbbcodetags = 1; // switch to latin when the bbcode tag [...] is typed in
var language = 0;
var maxtransliterationlength=3;
var lenreafontsize = 14; // WAENING: the value is defined in the main.css !!!
var textreafontwidth = 7; // The width of the text is supposed to be 7 !!!

var prelanguage = 0;

function translatesymboltocyrillic(txt)
{
for (var ii=0; ii<lat.length; ii++)
{
 pos = txt.length>lat[ii].length?(txt.length-lat[ii].length):0;
 if (lat[ii]==txt.substr(pos,txt.length-pos)) {
  return txt.substr(0,txt.length-lat[ii].length)+rus[ii];
 }
}
return txt;
}
function translatesymboltolatin(symb)
{
for (var ii=0;ii<rus2.length;ii++)
{
 if (rus2[ii]==symb)
 return lat2[ii];
}
return symb;
}

function translateAlltoCyrillic()
{
var inloop=1;
tt = window.document.text.sms;
p1 = tt.selectionStart; p2 = tt.selectionEnd;
var preval = ""; var postval="";
if (p1==p2) {txt = tt.value;}
else
{
 preval = tt.value.substring(0, p1);
 txt = tt.value.substring(p1,p2);
 postval = tt.value.substring(p2);
}
var txtnew = "";
if ((!processhtmltags)&&(!processbbcodetags))
{
 txtnew = translateStringtoCyrillic(txt);
}
else
{
 var htt1,pbb1,t1,t2,txt1,txt2,tag_open,tag_close;
 var noinputtag=0;
 if (processhtmltags) {tag_open="<";tag_close=">";}
 if (processbbcodetags) {tag_open="[";tag_close="]";}
 while(inloop)
 {
  if (processhtmltags&&processbbcodetags)
  {
   htt1 = txt.indexOf("<");
   pbb1 = txt.indexOf("[");
   if (pbb1==htt1) {noinputtag=1}
   if (pbb1==-1) {pbb1=txt.length;}
   if (htt1==-1) {htt1=txt.length;}  
   if (htt1<pbb1) {t1=htt1; tag_close=">";} else {t1=pbb1; tag_close="]";}
  }
  else
  {
   t1 = txt.indexOf(tag_open);
   if (t1==-1) noinputtag=1;
  }
  if (noinputtag) {inloop=0;t1=txt.length;t2=txt.length;}
  else
  {
   txt2=txt.substring(t1,txt.length);
   t2=txt2.indexOf(tag_close);
   //if (t2==-1) {t2=txt.length; inloop=0;} else {t2=t2+t1+1};
   if (t2==-1) {t2=t1+1} else {t2=t2+t1+1};
  }
  txt1 = txt.substring(0,t1);
  txt2 = txt.substring(t1,t2);
  txt = txt.substring(t2,txt.length);
  txtnew = txtnew+translateStringtoCyrillic(txt1)+txt2;  
 }
}
tt.value = preval+txtnew+postval;
if (p1!=p2) {tt.setSelectionRange(p1+txtnew.length,p1+txtnew.length);}
tt.focus();
return true;
}
function translateStringtoCyrillic(thestringlat)
{
var symbb,fromm,howmuch,thestringcyr="";
for (kk=0;kk<thestringlat.length;kk++)
{
 howmuch = thestringcyr.length>maxtransliterationlength?maxtransliterationlength:thestringcyr.length;
 fromm = thestringcyr.length-howmuch;
 symbbb = thestringlat.substr(kk,1);
 symbbb = translatesymboltocyrillic(thestringcyr.substr(fromm,howmuch)+symbbb);
 thestringcyr = thestringcyr.substr(0,fromm)+symbbb;  
}
return thestringcyr;
}
function translateAlltoLatin()
{
tt = window.document.text.sms;
p1 = tt.selectionStart; p2 = tt.selectionEnd;
var preval = ""; var postval="";
if (p1==p2) {txt = tt.value;}
else
{
 preval = tt.value.substring(0, p1);
 txt = tt.value.substring(p1,p2);
 postval = tt.value.substring(p2);
}
txtnew="";
var symb = "";
for (kk=0;kk<txt.length;kk++)
{
 symb = translatesymboltolatin(txt.substr(kk,1));
 txtnew = txtnew.substr(0,txtnew.length) + symb;
}
tt.value = preval+txtnew+postval;
if (p1!=p2) {tt.setSelectionRange(p1+txtnew.length,p1+txtnew.length);}
tt.focus();
return true;
}

//-->
</script>
</head>
<body link="#000000" alink="#000000" vlink="#000000">

<!-- FORM -->
<center>
<table width="100%">
<td align="center" width="100%" bgcolor="#cccccc"><center>Бесплатная отправка SMS сообщений</center></td>
</table>
<table border=0 width=90%>
<tr>
<td width=50%>
<body onload="checkLen()">
<FORM ACTION="send.php" METHOD=POST name="text">
<TABLE BORDER=0>
<TR>
<TD>Номер телефона:</TD>
<TD><input type=text name="phone" size=18 maxlength=12></TD></TR>
<TR>
<TD>Выбор оператора:</TD>
<TD><select name="operator" size=1>
<option value="1" >operator 1</option>
<option value="2" >operator 2</option>
<option value="3" >operator 3</option>
</TD></TR>
<TR>
<td colspan="2">Отправить сообщение на русском?</td>
</tr>
<tr>
<td colspan="2"><input type=radio value=1 onClick=setLen(this.value) name="dcs">Да<br><input type=radio value=0 onClick=setLen(this.value) name="dcs" checked>Нет</td>
</TR>
<TR>
<TD colspan=2>
Сообщение: <BR><textarea name="sms" cols=40 rows=5 onChange=checkLen() onKeyUp=checkLen()></textarea></TD>
<td valign="middle"><p>&nbsp;</p><!-- <input name=len type=hidden onChange=checkLen(document.forms[0]) onKeyUp=checkLen(document.forms[0]) value=0> --><font size="-2">осталось <INPUT TYPE="text" NAME="len" VALUE="160" SIZE=4 onChange="checkLen()" onKeyUp="checkLen()" tabindex="-1">символов</td>
</TR>
<tr>
<td align="center" colspan="2">
<input onclick="translateAlltoCyrillic();doChange();" type="button" value="в кириллицу" class="subbutton" title="Перевести текст в кириллицу">
<input onclick="translateAlltoLatin();doChange()" type="button" value="в латиницу" class="subbutton" title="Перевести текст в латиницу">
</td>
</tr>
<TR>
<TD colspan=2 align=center><input type=submit value="Отправить">
<!-- <input type="button" value="2RUS" class="subbutton" onclick="alert(translit2win(sms_text.value));">
<input type="button" value="2LAT" class="subbutton" onclick="alert(translit2lat(sms_text.value));"> -->
<input type=reset value="Очистить"></TD></TR>
</TABLE></FORM>
</td>
</tr></table></center>
<!-- End FORM -->
</body>
</html>


На этом все. =)

P.S.: за помощь в создании скрипта выражаю огромную благодарность Strelk'у и SiRex'у с grudina.info.


--------------------
Сознаю свою вину.
Меру, степень, глубину.
И прошу меня направить
на текущую войну.
Нет войны - я все приму:
ссылку, каторгу, тюрьму.
Но желательно в июле,
и желательно в Крыму.

(с) Л. Филатов
PMICQMSN
Top
super-sms
Дата 25.11.2005 - 20:28
Цитировать сообщение




Unregistered












Это интересно спасибо)
Но есть одна просьба:
Нужен скриптик такой как тут https://mms.sms.dn.ua
Принцип отправки не просто SMS а смс с прекреплёным файлом но так как нельзя послать вложеный фаил на телефон фаил закидывается на сервер временно а к смске приерепляется ссылка на фаил.....
То как прикрепить фаил я нашол тут https://hosting.skif.net/docs/php/features.file-upload.html
Может сможете сделать и выложить думаю это будет интересно всем!!! Зарание спасибо.
ICQ 6101043
Top
WASABY
Дата 25.11.2005 - 23:22
Цитировать сообщение
Offline



.:EL TERRIBLE:.
******

Профиль
Группа: -editors-
Сообщений: 1794
Пользователь №: 144
Регистрация: 2.04.2005



Рейтинг:
(70%) XXXX-


=) это уже будет не отправка СМС, а отправка ММС...
У меня сейчас проблемы с свободным временем... Может пото и подумаю на вашим предложением... Можете пока, к примеру, попросить скрипт у автора того сайта, который вы написали выше


--------------------
Сознаю свою вину.
Меру, степень, глубину.
И прошу меня направить
на текущую войну.
Нет войны - я все приму:
ссылку, каторгу, тюрьму.
Но желательно в июле,
и желательно в Крыму.

(с) Л. Филатов
PMICQMSN
Top
mulder
Дата 26.11.2005 - 14:22
Цитировать сообщение
Offline



.:in root we trust:.
*****

Профиль
Группа: -vip-
Сообщений: 1181
Пользователь №: 1151
Регистрация: 9.08.2005



Рейтинг:
(70%) XXXX-


vertag.gif dont.gif banned00.gif
это реклама !!! убери это из текста ..

Цитата
www.super-sms.org.ua


super-sms Тебе предупреждение за рекламу.

Реклама на портале запрещена


Также крайне желательно не обсуждать в темах действия и пожелания к действиям участников для этого есть гостевая и все действия сдесь выполняются исключительно на добровольных началах.
PM
Top
vld-dn
Дата 30.11.2005 - 16:33
Цитировать сообщение




Unregistered












Цитата (super-sms @ 25.11.2005 - 20:28)
Это интересно спасибо)
Но есть одна просьба:
Нужен скриптик такой как тут https://mms.sms.dn.ua
Принцип отправки не просто SMS а смс с прекреплёным файлом но так как нельзя послать вложеный фаил на телефон фаил закидывается на сервер временно а к смске приерепляется ссылка на фаил.....
То как прикрепить фаил я нашол тут https://hosting.skif.net/docs/php/features.file-upload.html
Может сможете сделать и выложить думаю это будет интересно всем!!! Зарание спасибо.
ICQ 6101043

у меня есть такой скрипт, собсно я тебе в асю написал...
Top
ctreat
Дата 4.12.2005 - 19:14
Цитировать сообщение
Offline



Junior
*

Профиль
Группа: -users-
Сообщений: 42
Пользователь №: 2299
Регистрация: 2.12.2005



Рейтинг:
(0%) -----


Такой вопрос, может не в тему или ответ уже был. А если отправить это смс то деньги с получателя возьмут или нет?
PMПисьмо на e-mail пользователюICQ
Top
WASABY
Дата 4.12.2005 - 21:03
Цитировать сообщение
Offline



.:EL TERRIBLE:.
******

Профиль
Группа: -editors-
Сообщений: 1794
Пользователь №: 144
Регистрация: 2.04.2005



Рейтинг:
(70%) XXXX-


ctreat
нет... Здесь используется mail() тоесть это равно тому, что ты, еапример, будешь отправлять СМС с мыла =)


--------------------
Сознаю свою вину.
Меру, степень, глубину.
И прошу меня направить
на текущую войну.
Нет войны - я все приму:
ссылку, каторгу, тюрьму.
Но желательно в июле,
и желательно в Крыму.

(с) Л. Филатов
PMICQMSN
Top
ctreat
Дата 4.12.2005 - 21:48
Цитировать сообщение
Offline



Junior
*

Профиль
Группа: -users-
Сообщений: 42
Пользователь №: 2299
Регистрация: 2.12.2005



Рейтинг:
(0%) -----


Хорошо что нет. Надо опробовать такую феню)
PMПисьмо на e-mail пользователюICQ
Top
americanets
Дата 26.01.2006 - 20:56
Цитировать сообщение




Unregistered












А сам php скрипт как должен выглядеть и как узнать у каких операторов и куда посылать данные
Top
WASABY
Дата 26.01.2006 - 21:07
Цитировать сообщение
Offline



.:EL TERRIBLE:.
******

Профиль
Группа: -editors-
Сообщений: 1794
Пользователь №: 144
Регистрация: 2.04.2005



Рейтинг:
(70%) XXXX-


americanets
php код один и тот же (смотри первую часть). Я уже писал, что принработы скрипта - фидбэк. Звониш оператору и узнаешь потдерживается ли у них отправка СМС с мыла (и на мыло)... если поддерживается, то они тебе дают мыло (как правило: nomer_telefona@domennoe_imya.com) в php скрипте прописываешь только правую часть (точно после @), а в html добавляешь еще одного оператора. все =)


--------------------
Сознаю свою вину.
Меру, степень, глубину.
И прошу меня направить
на текущую войну.
Нет войны - я все приму:
ссылку, каторгу, тюрьму.
Но желательно в июле,
и желательно в Крыму.

(с) Л. Филатов
PMICQMSN
Top

Опции темы Страницы: (5) [1] 2 3 ... Последняя » Закрытая темаСоздание новой темы