Никак не могу разослать на свой icq ежесекундные сообщения. Как обойти ограничения/отсылать с таким промежутком? p.s. такое нужно не только для спама, но и определенной слежке за какими то действиями...
rcc0023 Вопрос - так ли уж необходимо слать сообщение ежесекундно? А не пакетами по 5-10 строк в сообщении каждые 5-10 секунд? На сколько помню - количество и длина сообщений ограничиваются сервером, и это не обойти. З.Ы. в джаббере таких ограничений нет (хотя зависит от серва)
1)Обьеденить события бота в несколько групп 2)Каждой группе присвоить свой UIN 3)Отсылать запрос о событии с определенного UINA не лучшее решение но пока пришло в голову только это
Спасибо за ответы, с частой отправкой проблему решил. Но вот появилась новая... отправляет лишние сообщения... PHP: <? include('connect.php'); include('table.php'); include('WebIcqLite.class.php'); $key_1=$key_2=0; //настройка и подключение к icq $array_acc_icq[0][uin]=7776666;$array_acc_icq[0][pass]='parol_andreya'; $len_array_acc_icq=count($array_acc_icq); for($row=0;$row<$len_array_acc_icq;$row++){ $icq[$row]=new WebIcqLite(); $icq[$row]->connect($array_acc_icq[$row][uin],$array_acc_icq[$row][pass]); echo $icq[$row]->error; if($icq[$row]->error!='')$icq_error=1; }; while($icq_error!=1 and $test<1){ ++$test; //смотрим сколько сообщений будет, если один раз прокрутить $mysql_query_1=mysql_query('SELECT * FROM '.$table_do.' ORDER BY user ASC'); //загрузка всех переходов if(mysql_num_rows($mysql_query_1)!=0){ while($g=mysql_fetch_array($mysql_query_1)){ if($befor_user==$g[user]){--$key_1;}else{$array_do[$key_1][massage]='';}; $array_do[$key_1][massage].=date('H:i',$g[date]).' | '.$g[user].' перешел на '.$g[page].' '; $befor_user=$g[user]; ++$key_1; }; for($row=0;$row<count($array_do);$row++){ if($key_2==$len_array_acc_icq)$key_2=0; $icq[$key_2]->send_message(373829414,$array_do[$row][massage]); if($icq[$row]->error!='' and $icq[$row]->error!='Unknown serwer answer'){$icq_error=1;}else{mysql_query('DELETE FROM '.$table_do.' WHERE ..... LIMIT 1');}; ++$key_2; sleep(2); }; }; sleep(3); } ?>
rcc0023 Что значит лишние? И код немного странный, зачем $befor_user и $key_1? Будет как-то так, отсторожно, удаляет строки из таблицы!: PHP: <? include('connect.php'); include('table.php'); include('WebIcqLite.class.php'); $key_2=0; //настройка и подключение к icq $array_acc_icq['0']['uin']=7776666; $array_acc_icq['0']['pass']='parol_andreya'; $len_array_acc_icq=count($array_acc_icq); for($row=0;$row<$len_array_acc_icq;$row++) { $icq[$row]=new WebIcqLite(); $icq[$row]->connect($array_acc_icq[$row]['uin'],$array_acc_icq[$row]['pass']); echo $icq[$row]->error; if($icq[$row]->error!='')$icq_error=1; } while($icq_error!=1 and $test<1){ ++$test; $mysql_query_1=mysql_query('SELECT * FROM '.$table_do.' ORDER BY user ASC'); while($g=mysql_fetch_array($mysql_query_1)) { // Заносим в ассоциативный массив, по имени пользователя $array_do[$g['user']][]=date('H:i',$g['date']).' | '.$g['user'].' перешел на '.$g['page']; } if (!empty($array_do)) foreach($array_do as $name => $val) { $icq[$key_2 % $len_array_acc_icq]->send_message(373829414,implode("\n",$val)); if($icq[$key_2 % $len_array_acc_icq]->error!='' and $icq[$key_2 % $len_array_acc_icq]->error!='Unknown serwer answer') {$icq_error=1;} else { // Удаление из лога всех строк с отправленным пользователем // Хотя, конечно, лучше так не делать, а проверять по дате последней отправки mysql_query('DELETE FROM '.$table_do.' WHERE user=\''.mysql_real_escape_string($name).'\''); } $key_2++; sleep(2); } // Убираем массив array_do, чтобы не смущал unset($array_do); sleep(3); } ?>