PDA

Просмотр полной версии : помогите с php ботом


Ridikh
12.11.2007, 21:17
есть скрипт php icq бота, хочу добавить функцию отправки sms через него

sms надо отправлять через сайт http://sms.smssender.org

и надо сделать автозаполнения форм на сайте, чтобы можно было боту написать:
!sms +79201031775 Привет кроссавчег!
и он прислал sms на номер +79201031775 с текстом "Привет кроссавчег!"

бот на webicqpro classe
кусок бота
case '!stop': if($msg['from'] == ADMINUIN) { $icq->sendMessage(ADMIN, " ICQ BOT stoped"); $icq->disconnect(); exit();

как то таг

bopoh13
12.11.2007, 21:32
Чет этот сервис не робит никуя!

mr.The
12.11.2007, 21:48
сервис действительно неробит =\\
а вов торых - в чём сопсна проблемма? отурываеш сокет - посылаш запос - выводиш результат

MegaDeth
12.11.2007, 21:51
Ridikh, что за бот то?
вообще смысл создания темы? что тебе можно посоветовать если ты ни кусок кода ни код полностью не выложил.
Как сделать - добавить в список комманд эту комманду и определить для нее соотв. функцию.
есть сервис чтото наподобие [номер_телефорна]@smsmsg.ru
отправляеш как на мыло и приходит смс. актуально для мегафона, для других ОпСосов другие гейты какието...
можно просто на пхп mail()...

Ridikh
12.11.2007, 21:53
отправил себе смс все ок
на мегафоне работает

sw04
12.11.2007, 22:24
на мтс работает
вводить надо в междунар. формате.
зы россия +7

MegaDeth
12.11.2007, 22:49
Ridikh, пиши запрос, окрывай сокет и пихай запрос когда придет комманда !sms. Конструкцию case ты думаю знаешь как юзать. незнаешь - гугли. про запрос - учи протокол http. функции для работы с сокетами, здесь необходимые - Fscockopen(), fputs(),fclose(). Rread(), если хочешь получить подтверждение от сервера (анализируй ответы от него)
да, и параметры идущие с коммандой получай как по примеру (разделяешь по " ")
ps запрос можеш перехватить прогой InetCrack...

n3m0
12.11.2007, 22:57
Открываеш сокет, и отправляеш ему:

POST http://sms.smssender.org/index.php HTTP/1.0
User-Agent: Opera/9.23 (Windows NT 5.1; U; ru)
Host: sms.smssender.org
Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1
Accept-Language: uk-UA,uk;q=0.9,en;q=0.8
Accept-Charset: iso-8859-1, utf-8, utf-16, *;q=0.1
Accept-Encoding: deflate, gzip, x-gzip, identity, *;q=0
Referer: http://sms.smssender.org/
Proxy-Connection: close
Content-Length: 100
Content-Type: application/x-www-form-urlencoded

act=send&sms_phone=+xxxxxxxxxxxx&sms_mess=TEXT&sms_trans=on&sms_break=on&sms_user=USER&sms_password=PASSWORD




USER,PASSWORD - логин и пароль твоего пользователя на сайте

xxxxxxxxxxxxx - телефонный номер получателя

TEXT - текст сообщения

Ridikh
13.11.2007, 23:06
Открываеш сокет, и отправляеш ему:

POST http://sms.smssender.org/index.php HTTP/1.0
User-Agent: Opera/9.23 (Windows NT 5.1; U; ru)
Host: sms.smssender.org
Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1
Accept-Language: uk-UA,uk;q=0.9,en;q=0.8
Accept-Charset: iso-8859-1, utf-8, utf-16, *;q=0.1
Accept-Encoding: deflate, gzip, x-gzip, identity, *;q=0
Referer: http://sms.smssender.org/
Proxy-Connection: close
Content-Length: 100
Content-Type: application/x-www-form-urlencoded

act=send&sms_phone=+xxxxxxxxxxxx&sms_mess=TEXT&sms_trans=on&sms_break=on&sms_user=USER&sms_password=PASSWORD




USER,PASSWORD - логин и пароль твоего пользователя на сайте

xxxxxxxxxxxxx - телефонный номер получателя

TEXT - текст сообщения

а не подскажешь готовый код?

-Hormold-
13.11.2007, 23:38
<?
$al="act=send&sms_phone=+xxxxxxxxxxxx&sms_mess=TEXT&sms_trans=on&sms_break=on&sms_user=USER&sms_password=PASSWORD";
httpSocketConnection('sms.smssender.org', 'POST', 'http://sms.smssender.org/index.php', $al);
function httpSocketConnection($host, $method, $path, $data)
{
$method = strtoupper($method);

$filePointer = @fsockopen($host, 80, $errorNumber, $errorString);

if (!$filePointer)
{
exit('Failed opening http socket connection: '.$errorString.' ('.$errorNumber.')<br/>\n');
return false;
}

$requestHeader = $method." ".$path." HTTP/1.1\r\n";
$requestHeader.= "Host: ".$host."\r\n";
$requestHeader.= "User-Agent: ".$browsers[rand(0,4)]."\r\n";
$requestHeader.= "Content-Type: application/x-www-form-urlencoded\r\n";

if ($method == "POST")
{
$requestHeader.= "Content-Length: ".strlen($data)."\r\n";
}

$requestHeader.= "Connection: close\r\n\r\n";

if ($method == "POST")
{
$requestHeader.= $data;
}

fwrite($filePointer, $requestHeader);

$responseHeader = '';
$responseContent = '';

do
{
$responseHeader.= fread($filePointer, 1);
}
while (!preg_match('/\\r\\n\\r\\n$/', $responseHeader));


if (!strstr($responseHeader, "Transfer-Encoding: chunked"))
{
while (!feof($filePointer))
{
$responseContent.= fgets($filePointer, 128);
preg_match_all( '/<td></td>(.*)<td><\/td>/iUs' , $responseContent, $responseContent);
}
}
else
{

while ($chunk_length = hexdec(fgets($filePointer)))
{
$responseContentChunk = '';

//logEventToTextFile('debug', $chunk_length);
$read_length = 0;

while ($read_length < $chunk_length)
{
$responseContentChunk .= fread($filePointer, $chunk_length - $read_length);
$read_length = strlen($responseContentChunk);
}

$responseContent.= $responseContentChunk;

fgets($filePointer);
preg_match_all( '/<td></td>(.*)<td><\/td>/iUs' , $filePointer, $filePointer);


}

}

//logEventToTextFile('debug', $responseContent);


return chop($responseContent);
}

Ridikh
14.11.2007, 01:08
n3m0, -Hormold- спасибо чуваки! ! ! ;)

Cactuz
14.11.2007, 01:44
n3m0, -Hormold- спасибо чуваки! ! !
выставил вам репы +10 ;)
лол.... 0 ты выставил им =)))) твой вес реппы составлет тое число =)
PS а смс не доходят =(

Ridikh
14.11.2007, 23:14
а как команду:
!sms +79201031775 Привет кроссавчег!
разбить на $text и $phone ?

k1b0rg
14.11.2007, 23:23
по первому и второму пробелу

Ridikh
14.11.2007, 23:25
а можно код?

NOmeR1
14.11.2007, 23:52
а можно код?
Можно =)
<?
$text = '!sms +79201031775 Привет кроссавчег!';
preg_match('|^!sms\s+([^\s]+)\s+(.*)$|is', $text, $sms);
$number = $sms[1];
$text = $sms[2];
?>

Ridikh
15.11.2007, 16:09
так а как все это в бота запихать?
непонтяно что писать
case '!about':
$icq-sendMessage($msg['from'], $about);
break;

case '!help':
$icq-sendMessage($msg['from'], $help);
break;

case '!news':
$icq-sendMessage($msg['from'], $news);
break;


case '!sms $phone $text':
$icq-sendMessage($msg['from'], $phone);
break;

Ridikh
24.11.2007, 17:18
<?
$text = '!sms +79201031775 Привет кроссавчег!';
preg_match('|^!sms\s+([^\s]+)\s+(.*)$|is', $text, $sms);
$number = $sms[1];
$text = $sms[2];
?>

этот код не подходит
скажите что делать?