Отправка SMS с сервера на телефон (МТС)

Статус
В этой теме нельзя размещать новые ответы.

pumba

Guest
Отправка SMS с сервера на телефон (МТС)

Задача сл.:
Есть сервер FreeBSD/Apach на одной машине, SQL-серер на другой. Работают в связке. Иногда SQL-сервер падает.
Я хочу (при некоторых условиях), чтобы 1-й сообщал мне о падении 2-ого via SMS.
Код:
------------------------------------
<?

$text='SQL is DOWN.';
$countlen=strlen($text);
$phone='79020000000'; // мой телефон

// заголовок
$POSTData=
"function=".urlencode('sms_send')."&".
"MMObjectType=".urlencode('0')."&".
"MMObjectID=".urlencode('')."&".
"To=".urlencode($phone)."&".
"Msg=".urlencode($text)."&".
"count=".urlencode($countlen)."&".
"Hour=".urlencode('20')."&".
"Min=".urlencode('30')."&".
"Day=".urlencode('15')."&".
"Mon=".urlencode('09')."&".
"Year=".urlencode('2002')."&".
"Lang=".urlencode('2')."&".
"submit=".urlencode('Отправить');

//print "$POSTData";
$len=strlen($POSTData);

$nn="\r\n";

$zapros=
"POST http://www.mts.ru/cgi-bin/cgi.exe HTTP/1.0".$nn.
"Host: www.mts.ru".$nn.
"Referer: http://www.mts.ru/cgi-bin/cgi.exe?function=sms_send".$nn.
"User-Agent: Mozilla/4.0 (compatible; MSIE 5.01; Windows NT)".$nn.
"Content-Type: application/x-www-form-urlencoded".$nn.
"Accept: */*".$nn.
"Accept-Encoding: gzip, deflate".$nn.
"Connection: Keep-Alive".$nn.
"Content-Length: $len".$nn.
"$POSTData".
$nn;


//открываем сокет и шлем заголовок
$fp = fsockopen("www.mts.ru", 80, &$errno, &$errstr, 30);
if(!$fp) { print "$errstr ($errno)<br>\n"; exit; }


//выводим заголовок ответа и страницу на экран
fputs($fp,$zapros);

print fgets($fp,20048);
fclose($fp);

fclose($fp);

?>
---------------------------------------
.... не работает... получаю:
HTTP/1.1 400 Bad Request
Где я недопонимаю? Или это их защита?
PS.
Если я захожу по линку:
http://www.mts.ru/cgi-bin/cgi.exe?function=sms_send&MMObjectType=0&MMObjectID=&To=79020000000&Msg=SQL+is+DOWN.&count=12&Hour=20&Min=30&Day=15&Mon=09&Year=2002&Lang=2&submit=%CE%F2%EF%F0%E0%E2%E8%F2%FC
То всё отправляется....
 

pumba

Guest
(исправление)
...не:

..."$POSTData".
$nn;

а в коде:
..."$POSTData".
$nn.$nn;
--------
при этом коде не работает.
 

pumba

Guest
Спасибо всем. С бед реквестом разобрался:
Надо было:
...
"Content-Length: $len".$nn.$nn.
"$POSTData";

Всё Ок.
HTTP/1.1 200 OK
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху