помогите с php ботом

Discussion in 'PHP' started by Ridikh, 12 Nov 2007.

  1. Ridikh

    Ridikh Member

    Joined:
    11 Nov 2007
    Messages:
    69
    Likes Received:
    7
    Reputations:
    0
    есть скрипт php icq бота, хочу добавить функцию отправки sms через него

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

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

    бот на webicqpro classe
    кусок бота
    Code:
    case '!stop':  				if($msg['from'] == ADMINUIN)  				{  					$icq->sendMessage(ADMIN, " ICQ BOT stoped");  					$icq->disconnect();  					exit();
    как то таг
     
    #1 Ridikh, 12 Nov 2007
    Last edited: 12 Nov 2007
  2. bopoh13

    bopoh13 Elder - Старейшина

    Joined:
    31 Oct 2006
    Messages:
    195
    Likes Received:
    20
    Reputations:
    0
    Чет этот сервис не робит никуя!
     
  3. mr.The

    mr.The Elder - Старейшина

    Joined:
    30 Apr 2007
    Messages:
    1,080
    Likes Received:
    456
    Reputations:
    38
    сервис действительно неробит =\\
    а вов торых - в чём сопсна проблемма? отурываеш сокет - посылаш запос - выводиш результат
     
  4. MegaDeth

    MegaDeth Elder - Старейшина

    Joined:
    8 Nov 2006
    Messages:
    192
    Likes Received:
    72
    Reputations:
    13
    Ridikh, что за бот то?
    вообще смысл создания темы? что тебе можно посоветовать если ты ни кусок кода ни код полностью не выложил.
    Как сделать - добавить в список комманд эту комманду и определить для нее соотв. функцию.
    есть сервис чтото наподобие [номер_телефорна]@smsmsg.ru
    отправляеш как на мыло и приходит смс. актуально для мегафона, для других ОпСосов другие гейты какието...
    можно просто на пхп mail()...
     
    #4 MegaDeth, 12 Nov 2007
    Last edited: 12 Nov 2007
  5. Ridikh

    Ridikh Member

    Joined:
    11 Nov 2007
    Messages:
    69
    Likes Received:
    7
    Reputations:
    0
    отправил себе смс все ок
    на мегафоне работает
     
  6. sw04

    sw04 Elder - Старейшина

    Joined:
    10 Oct 2007
    Messages:
    44
    Likes Received:
    10
    Reputations:
    0
    на мтс работает
    вводить надо в междунар. формате.
    зы россия +7
     
  7. MegaDeth

    MegaDeth Elder - Старейшина

    Joined:
    8 Nov 2006
    Messages:
    192
    Likes Received:
    72
    Reputations:
    13
    Ridikh, пиши запрос, окрывай сокет и пихай запрос когда придет комманда !sms. Конструкцию case ты думаю знаешь как юзать. незнаешь - гугли. про запрос - учи протокол http. функции для работы с сокетами, здесь необходимые - Fscockopen(), fputs(),fclose(). Rread(), если хочешь получить подтверждение от сервера (анализируй ответы от него)
    да, и параметры идущие с коммандой получай как по примеру (разделяешь по " ")
    ps запрос можеш перехватить прогой InetCrack...
     
    #7 MegaDeth, 12 Nov 2007
    Last edited: 12 Nov 2007
  8. n3m0

    n3m0 Elder - Старейшина

    Joined:
    11 May 2007
    Messages:
    133
    Likes Received:
    92
    Reputations:
    11
    Открываеш сокет, и отправляеш ему:
    Code:
    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 - текст сообщения
     
  9. Ridikh

    Ridikh Member

    Joined:
    11 Nov 2007
    Messages:
    69
    Likes Received:
    7
    Reputations:
    0
    а не подскажешь готовый код?
     
  10. -Hormold-

    -Hormold- Кто, если не ты?

    Joined:
    29 Sep 2007
    Messages:
    418
    Likes Received:
    290
    Reputations:
    44
    PHP:
    <?
    $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($host80$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($filePointer1); 
           } 
           while (!
    preg_match('/\\r\\n\\r\\n$/'$responseHeader)); 
           
           
           if (!
    strstr($responseHeader"Transfer-Encoding: chunked")) 
           { 
               while (!
    feof($filePointer)) 
               { 
                   
    $responseContent.= fgets($filePointer128); 
                    
    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); 
       } 
      
     
  11. Ridikh

    Ridikh Member

    Joined:
    11 Nov 2007
    Messages:
    69
    Likes Received:
    7
    Reputations:
    0
    n3m0, -Hormold- спасибо чуваки! ! ! ;)
     
    #11 Ridikh, 14 Nov 2007
    Last edited: 14 Nov 2007
  12. Cactuz

    Cactuz Elder - Старейшина

    Joined:
    6 Jan 2007
    Messages:
    86
    Likes Received:
    5
    Reputations:
    0
    лол.... 0 ты выставил им =)))) твой вес реппы составлет тое число =)
    PS а смс не доходят =(
     
  13. Ridikh

    Ridikh Member

    Joined:
    11 Nov 2007
    Messages:
    69
    Likes Received:
    7
    Reputations:
    0
    а как команду:
    !sms +79201031775 Привет кроссавчег!
    разбить на $text и $phone ?
     
  14. k1b0rg

    k1b0rg Тут может быть ваша реклама.

    Joined:
    30 Jul 2005
    Messages:
    1,182
    Likes Received:
    399
    Reputations:
    479
    по первому и второму пробелу
     
  15. Ridikh

    Ridikh Member

    Joined:
    11 Nov 2007
    Messages:
    69
    Likes Received:
    7
    Reputations:
    0
    а можно код?
     
  16. NOmeR1

    NOmeR1 Everybody lies

    Joined:
    2 Jun 2006
    Messages:
    1,068
    Likes Received:
    783
    Reputations:
    213
    Можно =)
    PHP:
    <?
    $text '!sms +79201031775 Привет кроссавчег!';
    preg_match('|^!sms\s+([^\s]+)\s+(.*)$|is'$text$sms);
    $number $sms[1];
    $text $sms[2];
    ?>
     
  17. Ridikh

    Ridikh Member

    Joined:
    11 Nov 2007
    Messages:
    69
    Likes Received:
    7
    Reputations:
    0
    так а как все это в бота запихать?
    непонтяно что писать
    Code:
    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;
     
    #17 Ridikh, 15 Nov 2007
    Last edited: 24 Nov 2007
  18. Ridikh

    Ridikh Member

    Joined:
    11 Nov 2007
    Messages:
    69
    Likes Received:
    7
    Reputations:
    0
    этот код не подходит
    скажите что делать?