IMHO.WS

IMHO.WS (http://www.imho.ws/index.php)
-   Веб-программирование (http://www.imho.ws/forumdisplay.php?f=29)
-   -   Форма отправки SMS сообщений (http://www.imho.ws/showthread.php?t=94636)

Sacred13 23.10.2005 11:26

Форма отправки SMS сообщений
 
Все привет!
Нашел форму для отправки сообщений, написаную на PHP. Однако
все бы хорошо, но в этой форме отсутствует очень удобная функция, а именно перекодировка кирилицы в латиницу. К примеру пользователь пишет SMS сообщение на кирилицы, но мобильный кирилицу не поддерживает, пользователь зная об этом ставит галочку в форме флажок, после этого нажав на кнопку отправить, сообщение автоматически должно перекодироваться в латиницу.
Так вот, я создал файл ( правда незнаю в каком расширении этот файл должен быть) с таким содержанием
<?
$tr = array(
"а" => "a",
"б" => "b",
"в" => "v",
"г" => "g",
"д" => "d",
"е" => "e",
);
$text = "";
foreach($tr as $a => $b) $text = str_replace($a, $b, $text);
?>

Но я незнаю как подключить этот файл к самой форме отправки сообщения.
Вот ее код
<?
/*****************************************************************
* *
*Ukraine GSM SMS Sender v 2.0 Created by Alexsandr Genezi *
* *
*****************************************************************/

header("Pragma: no-cache");
if ($operator!=""){
switch($operator){
case 'KSA': $prefix="38067"; $suffix="@2sms.kyivstar.net";
break;
case 'KSC': $prefix="38067"; $suffix="@sms.kyivstar.net";
break;
case 'DJU': $prefix="38097"; $suffix="@2sms.kyivstar.net";
break;
case 'UMC': $prefix="38050"; $suffix="@umc.com.ua";
break;
case 'GTO': $prefix="38048"; $suffix="@gt.com.ua";
break;
case 'GTK': $prefix="38044"; $suffix="@gt.com.ua";
break;
}
$to=$prefix.$cellular.$suffix;
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/plain\r\n";
mail($to, '', $message);
print "<center> <font face='Arial' size='2'>Ваше сообщение отправленно по номеру $to.";
};
echo"<html><head><title>Ukraine GSM SMS Sender v 2.0 Created by Alexsandr Genezi </title><meta http-equiv='Content-Type' content='text/html; charset=windows-1251'><meta http-equiv='pragma: nocache'><script>
var code = new Array(5);
code[0]='+380-67';
code[1]='+380-67';
code[2]='+380-97';
code[3]='+380-50';
code[4]='+380-48';
code[5]='+380-44';
var signup = '';
var maxleng = (150 - signup.length);
var fulltext='';

function chan(ndx)
{ document.frmMain.oper.value=code[ndx]; }

function checkSMS(){
txt = document.frmMain.message.value;
txtleng = txt.length;
if (txtleng < maxleng){
document.frmMain.sleft.value = (maxleng - txtleng);
document.frmMain.message.focus();
if (txt=='') document.frmMain.sleft.value = maxleng;
if(fulltext) { fulltext = '' }
}else{
if(!fulltext) fulltext = txt.substring(0,maxleng);
document.frmMain.message.value = fulltext;
document.frmMain.sleft.value = 0;
}
}

function sendSMS(){
if (document.frmMain.cellular.value.length!=7){
alert('Ошибка отправки!\\r\\nВведите номер получателя.!');
}else{
if (document.frmMain.message.value.length==0){
alert('Ошибка отправки!\\r\\nЗаполните текст сообщения!');
}else{
document.frmMain.message.value = document.frmMain.message.value + signup;
document.frmMain.submit();
}
};
};

function initPage(){
document.frmMain.oper.disabled=true;
chan(0);
checkSMS();
}

</script>
<style>
body { scrollbar-base-color: #eeeeee; scrollbar-arrow-color: #c6c6c6; }
.flat { border: 2px #ffffff solid; text-align: right; }
.hill { border: 1px #DBDBDB ridge; }
</style>
</head>
<body bgcolor='#FFFFFF' text='#000000' onload='initPage();'>
<form name='frmMain' method='post' action='$PHP_SELF'>
<table width='480' border='0' cellspacing='0' cellpadding='2' bordercolor='#DBDBDB' align='center'>

<tr>
<td align='right' colspan='3' bgcolor='#F4F4F4'>
<p align='center'><b><font size='2' face='Arial' color='#000099'>Ukraine GSM SMS Sender v 2.0</font></b>
</td>
</tr>

<tr>
<td align='right' bgcolor='#F4F4F4'>
<font face='Arial' size='2'>Оператор :&nbsp</font>
</td>
<td colspan='2' bgcolor='#F4F4F4'>
<select name='operator' size='1' onchange='chan(this.selectedIndex);'>
<option value='KSA'>КиевСтар Ace&amp;Base</option>
<option value='KSC'>КиевСтар контракт</option>
<option value='DJU'>Абонентам Djuice</option>
<option value='UMC'>UMC</option>
<option value='GTO'>Golden Telecom Odessa</option>
<option value='GTK'>Golden Telecom Kyiv</option>
</select>
<input class='flat' type='text' name='oper' size='7' maxlength='7'><input class='hill' type='text' name='cellular' maxlength='7' size='7'>
</td>
</tr>
<tr>
<td align='right' valign='top' bgcolor='#F4F4F4'>
<font face='Arial' size='2'>Сообщение :</font>&nbsp;
</td>
<td colspan='2' bgcolor='#F4F4F4'>
<textarea name='message' cols='40' onkeydown='checkSMS();' rows='4' wrap='VIRTUAL'></textarea>
<br>
<input type='text' name='sleft' size='3' maxlength='3' disabled='true' border='0 px white'>
<font face='Arial' size='2'>осталось символов</font></td>
</tr>
<tr>
<td align='left' valign='top' bgcolor='#F4F4F4'>&nbsp;</td>
<td valign='top' align='left' bgcolor='#F4F4F4'>
<input type='button' name='sender' value='Отправиь SMS' style='font-family: Arial; font-size: 10px; border-style: solid; border-width: 1' onclick='sendSMS();'>
</td>
<td valign='top' align='center' bgcolor='#F4F4F4'>
<input type='button' name='reseter' style='font-family: Arial; font-size: 10px; border-style: solid; border-width: 1' value='Очистить'>
</td>
</tr>
</table>
</form>
<div style='position: absolute; width: 92; height: 32; top: 10; left: 10;'></div>
</body>
</html>";
?>

Face 23.10.2005 14:06

PHP код:

<?
/************************************************** ***************
* *
*Ukraine GSM SMS Sender v 2.0 Created by Alexsandr Genezi *
* *
************************************************** ***************/

header("Pragma: no-cache");
if ($operator!=""){
switch($operator){
case 'KSA': $prefix="38067"; $suffix="@2sms.kyivstar.net";
break;
case 'KSC': $prefix="38067"; $suffix="@sms.kyivstar.net";
break;
case 'DJU': $prefix="38097"; $suffix="@2sms.kyivstar.net";
break;
case 'UMC': $prefix="38050"; $suffix="@umc.com.ua";
break;
case 'GTO': $prefix="38048"; $suffix="@gt.com.ua";
break;
case 'GTK': $prefix="38044"; $suffix="@gt.com.ua";
break;
}
$to=$prefix.$cellular.$suffix;
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/plain\r\n";
if($translit=='on') {
$tr = array(
"а" => "a",
"б" => "b",
"в" => "v",
"г" => "g",
"д" => "d",
"е" => "e",
);
foreach($tr as $a => $b) $message = str_replace($a, $b, $message);
}
mail($to, '', $message);
print "<center> <font face='Arial' size='2'>Ваше сообщение отправленно по номеру $to.";
};
echo"<html><head><title>Ukraine GSM SMS Sender v 2.0 Created by Alexsandr Genezi </title><meta http-equiv='Content-Type' content='text/html; charset=windows-1251'><meta http-equiv='pragma: nocache'><script>
var code = new Array(5);
code[0]='+380-67';
code[1]='+380-67';
code[2]='+380-97';
code[3]='+380-50';
code[4]='+380-48';
code[5]='+380-44';
var signup = '';
var maxleng = (150 - signup.length);
var fulltext='';

function chan(ndx)
{ document.frmMain.oper.value=code[ndx]; }

function checkSMS(){
txt = document.frmMain.message.value;
txtleng = txt.length;
if (txtleng < maxleng){
document.frmMain.sleft.value = (maxleng - txtleng);
document.frmMain.message.focus();
if (txt=='') document.frmMain.sleft.value = maxleng;
if(fulltext) { fulltext = '' }
}else{
if(!fulltext) fulltext = txt.substring(0,maxleng);
document.frmMain.message.value = fulltext;
document.frmMain.sleft.value = 0;
}
}

function sendSMS(){
if (document.frmMain.cellular.value.length!=7){
alert('Ошибка отправки!\\r\\nВведите номер получателя.!');
}else{
if (document.frmMain.message.value.length==0){
alert('Ошибка отправки!\\r\\nЗаполните текст сообщения!');
}else{
document.frmMain.message.value = document.frmMain.message.value + signup;
document.frmMain.submit();
}
};
};

function initPage(){
document.frmMain.oper.disabled=true;
chan(0);
checkSMS();
}

</script>
<style>
body { scrollbar-base-color: #eeeeee; scrollbar-arrow-color: #c6c6c6; }
.flat { border: 2px #ffffff solid; text-align: right; }
.hill { border: 1px #DBDBDB ridge; }
</style>
</head>
<body bgcolor='#FFFFFF' text='#000000' onload='initPage();'>
<form name='frmMain' method='post' action='$PHP_SELF'>
<table width='480' border='0' cellspacing='0' cellpadding='2' bordercolor='#DBDBDB' align='center'>

<tr>
<td align='right' colspan='3' bgcolor='#F4F4F4'>
<p align='center'><b><font size='2' face='Arial' color='#000099'>Ukraine GSM SMS Sender v 2.0</font></b>
</td>
</tr>

<tr>
<td align='right' bgcolor='#F4F4F4'>
<font face='Arial' size='2'>Оператор :&nbsp</font>
</td>
<td colspan='2' bgcolor='#F4F4F4'>
<select name='operator' size='1' onchange='chan(this.selectedIndex);'>
<option value='KSA'>КиевСтар Ace&amp;Base</option>
<option value='KSC'>КиевСтар контракт</option>
<option value='DJU'>Абонентам Djuice</option>
<option value='UMC'>UMC</option>
<option value='GTO'>Golden Telecom Odessa</option>
<option value='GTK'>Golden Telecom Kyiv</option>
</select>
<input class='flat' type='text' name='oper' size='7' maxlength='7'><input class='hill' type='text' name='cellular' maxlength='7' size='7'>
</td>
</tr>
<tr>
<td align='right' valign='top' bgcolor='#F4F4F4'>
<font face='Arial' size='2'>Сообщение :</font>&nbsp;
</td>
<td colspan='2' bgcolor='#F4F4F4'>
<textarea name='message' cols='40' onkeydown='checkSMS();' rows='4' wrap='VIRTUAL'></textarea>
<br>
<input type='text' name='sleft' size='3' maxlength='3' disabled='true' border='0 px white'>
<font face='Arial' size='2'>осталось символов</font><br>
<input type='checkbox' name='translit'> <font face='Arial' size='2'>Использовать транслитерацию</font>
</td>
</tr>
<tr>
<td align='left' valign='top' bgcolor='#F4F4F4'>&nbsp;</td>
<td valign='top' align='left' bgcolor='#F4F4F4'>
<input type='button' name='sender' value='Отправиь SMS' style='font-family: Arial; font-size: 10px; border-style: solid; border-width: 1' onclick='sendSMS();'>
</td>
<td valign='top' align='center' bgcolor='#F4F4F4'>
<input type='button' name='reseter' style='font-family: Arial; font-size: 10px; border-style: solid; border-width: 1' value='Очистить'>
</td>
</tr>
</table>
</form>
<div style='position: absolute; width: 92; height: 32; top: 10; left: 10;'></div>
</body>
</html>";
?>


Sacred13 23.10.2005 16:31

Спасибо большое! все работает.

Но есть еще одна пологаю серьезная проблема. После того как отправил СМС сообщение, на экране появляется уведомление что сообщение отправлено на такой то номер. А проблема в том что если нажать обновить страницу, снова отправиться это сообщение :(
Как это исправить?

Face 23.10.2005 20:19

PHP код:

<?
/************************************************** ***************
* *
*Ukraine GSM SMS Sender v 2.0 Created by Alexsandr Genezi *
* *
************************************************** ***************/

header("Pragma: no-cache");
if ($operator!=""){
switch($operator){
case 'KSA': $prefix="38067"; $suffix="@2sms.kyivstar.net";
break;
case 'KSC': $prefix="38067"; $suffix="@sms.kyivstar.net";
break;
case 'DJU': $prefix="38097"; $suffix="@2sms.kyivstar.net";
break;
case 'UMC': $prefix="38050"; $suffix="@umc.com.ua";
break;
case 'GTO': $prefix="38048"; $suffix="@gt.com.ua";
break;
case 'GTK': $prefix="38044"; $suffix="@gt.com.ua";
break;
}
$to=$prefix.$cellular.$suffix;
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/plain\r\n";
if($translit=='on') {
$tr = array(
"а" => "a",
"б" => "b",
"в" => "v",
"г" => "g",
"д" => "d",
"е" => "e",
);
foreach($tr as $a => $b) $message = str_replace($a, $b, $message);
}
mail($to, '', $message);
Header('Location: '.$PHP_SELF.'?complete='.$to);
exit();
};
if ($complete) {
    $complete=htmlspecialchars(addslashes($complete));
    print "<center> <font face='Arial' size='2'>Ваше сообщение отправленно по номеру $complete.";
}
echo"<html><head><title>Ukraine GSM SMS Sender v 2.0 Created by Alexsandr Genezi </title><meta http-equiv='Content-Type' content='text/html; charset=windows-1251'><meta http-equiv='pragma: nocache'><script>
var code = new Array(5);
code[0]='+380-67';
code[1]='+380-67';
code[2]='+380-97';
code[3]='+380-50';
code[4]='+380-48';
code[5]='+380-44';
var signup = '';
var maxleng = (150 - signup.length);
var fulltext='';

function chan(ndx)
{ document.frmMain.oper.value=code[ndx]; }

function checkSMS(){
txt = document.frmMain.message.value;
txtleng = txt.length;
if (txtleng < maxleng){
document.frmMain.sleft.value = (maxleng - txtleng);
document.frmMain.message.focus();
if (txt=='') document.frmMain.sleft.value = maxleng;
if(fulltext) { fulltext = '' }
}else{
if(!fulltext) fulltext = txt.substring(0,maxleng);
document.frmMain.message.value = fulltext;
document.frmMain.sleft.value = 0;
}
}

function sendSMS(){
if (document.frmMain.cellular.value.length!=7){
alert('Ошибка отправки!\\r\\nВведите номер получателя.!');
}else{
if (document.frmMain.message.value.length==0){
alert('Ошибка отправки!\\r\\nЗаполните текст сообщения!');
}else{
document.frmMain.message.value = document.frmMain.message.value + signup;
document.frmMain.submit();
}
};
};

function initPage(){
document.frmMain.oper.disabled=true;
chan(0);
checkSMS();
}

</script>
<style>
body { scrollbar-base-color: #eeeeee; scrollbar-arrow-color: #c6c6c6; }
.flat { border: 2px #ffffff solid; text-align: right; }
.hill { border: 1px #DBDBDB ridge; }
</style>
</head>
<body bgcolor='#FFFFFF' text='#000000' onload='initPage();'>
<form name='frmMain' method='post' action='$PHP_SELF'>
<table width='480' border='0' cellspacing='0' cellpadding='2' bordercolor='#DBDBDB' align='center'>

<tr>
<td align='right' colspan='3' bgcolor='#F4F4F4'>
<p align='center'><b><font size='2' face='Arial' color='#000099'>Ukraine GSM SMS Sender v 2.0</font></b>
</td>
</tr>

<tr>
<td align='right' bgcolor='#F4F4F4'>
<font face='Arial' size='2'>Оператор :&nbsp</font>
</td>
<td colspan='2' bgcolor='#F4F4F4'>
<select name='operator' size='1' onchange='chan(this.selectedIndex);'>
<option value='KSA'>КиевСтар Ace&amp;Base</option>
<option value='KSC'>КиевСтар контракт</option>
<option value='DJU'>Абонентам Djuice</option>
<option value='UMC'>UMC</option>
<option value='GTO'>Golden Telecom Odessa</option>
<option value='GTK'>Golden Telecom Kyiv</option>
</select>
<input class='flat' type='text' name='oper' size='7' maxlength='7'><input class='hill' type='text' name='cellular' maxlength='7' size='7'>
</td>
</tr>
<tr>
<td align='right' valign='top' bgcolor='#F4F4F4'>
<font face='Arial' size='2'>Сообщение :</font>&nbsp;
</td>
<td colspan='2' bgcolor='#F4F4F4'>
<textarea name='message' cols='40' onkeydown='checkSMS();' rows='4' wrap='VIRTUAL'></textarea>
<br>
<input type='text' name='sleft' size='3' maxlength='3' disabled='true' border='0 px white'>
<font face='Arial' size='2'>осталось символов</font><br>
<input type='checkbox' name='translit'> <font face='Arial' size='2'>Использовать транслитерацию</font>
</td>
</tr>
<tr>
<td align='left' valign='top' bgcolor='#F4F4F4'>&nbsp;</td>
<td valign='top' align='left' bgcolor='#F4F4F4'>
<input type='button' name='sender' value='Отправиь SMS' style='font-family: Arial; font-size: 10px; border-style: solid; border-width: 1' onclick='sendSMS();'>
</td>
<td valign='top' align='center' bgcolor='#F4F4F4'>
<input type='button' name='reseter' style='font-family: Arial; font-size: 10px; border-style: solid; border-width: 1' value='Очистить'>
</td>
</tr>
</table>
</form>
<div style='position: absolute; width: 92; height: 32; top: 10; left: 10;'></div>
</body>
</html>";
?>

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

Sacred13 23.10.2005 21:22

Спасибо!
Тоесть информация о том что сообщение отправлено остается? а данные пропадают.
Еще такой вопрос
пытаюсь настроить отправку сообщение так что бы отправлялся с определеного почтового ящика.
прописал вот такой код
mail($to, '', $message, "From: admin@$domen.ru", "Reply-To: admin@$domen.ru\r\n");

Но вот что то результат пока отрицательный :(

Nicodim 23.10.2005 22:34

уже 2 мессаги отправил на юмс, и ниодно не дошло, прошло уже полдня, скрипт глючит или в другом что-то дело?
кстати можно ли включить тут отправку на джинс?

Sacred13 24.10.2005 08:41

Это не скрипт глючит, это ЮМС считает эти сообщения спамом :(
для этого и надо сделать что бы в отправке сообщений указывалась почта, тема и куда ответить в случае ошибки :(

Face 24.10.2005 16:25

Нужно указать:
PHP код:

mail($to'СМС-сообщение'$message"From: admin@$domen.ru\r\nReply-To: admin@$domen.ru"); 


Лехыч 24.10.2005 16:33

А для Российских операторов как написать.

Sacred13 24.10.2005 17:52

Для Российских операторов все так же само, только в
вот в этих строках надо указать сервер принимающий и расылающий СМС
case 'MTC': $prefix="7902"; $suffix="@sms.gsm.udmnet.ru";
break;
этот шлюз для МТС в Удмуртии (Ижевск)::7902

Еще такой вопрос, а как сделать так что бы при отправке сообщения указывался АЙПИ адрес отправителя?

Face 24.10.2005 18:01

За IP-адрес отвечает переменная $HTTP_ENV_VARS['REMOTE_ADDR']

Sacred13 24.10.2005 18:21

Цитата:

Сообщение от Face
За IP-адрес отвечает переменная $HTTP_ENV_VARS['REMOTE_ADDR']

а куда именно его надо прописывать? :молись:

причина вопроса про АЙПИ адрес возникла из за того что приходит ошибка

This message was created automatically by mail delivery software.

A message that you sent could not be delivered to one or more of its
recipients. This is a permanent error. The following address(es) failed:

+номер_телефона@sms.jeans.com.ua
SMTP error from remote mailer after RCPT
TO:<+номер_телефона@sms.jeans.com.ua>:
host n5.jeans.com.ua [80.255.64.95]: 554 Service unavailable; Client host
[81.177.16.60] blocked using sbl.spamhaus.org;
http://www.spamhaus.org/SBL/sbl.lasso?query=SBL31294

Face 24.10.2005 18:42

Эта ошибка означает, что IP-адрес сервера (81.177.16.60) блокируется сервисом spamhaus.org, IP нельзя изменить... либо я не знаю такого способа )

Sacred13 24.10.2005 19:00

нда, спасибо, жаль, :confused:

Myp1blka 30.11.2006 20:07

Подскажите, как правильно встроить этот скрипт в PHP-Fusion ?
После отправки сообщения выдает :
"Невозможно получить содержание страницы."
и смс не приходит.
Заранее благодарю.

cinic 28.12.2006 19:12

Интересует какие данные в case ввести для Питерских: ТЕЛЕ2 БиЛАйн Мегафон МТС. Мож кто знает?

Croсk 01.03.2008 08:46

А есть, что ни будь новенькое из сриптов на PHP?
Спасибо...


Часовой пояс GMT +4, время: 22:34.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.