Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: explode
 
 автор: SnooPI   (18.04.2007 в 09:31)   письмо автору
 
 

Здравствуйте.....
Делаю запуск ботов сразу с нескольких номеров..
Номера лежат в файле
Пытаюсь к каждому приконектиться...,А он гооврит что неверный пароль...
Поомгите...кажется ошибка в $line или в explode

$line = 0;
$login = 'inc/uin;pass.txt'; #Логины, пароли для бота
$logins = file($login);
$adm = 'inc/admin.txt'; #Номер админа бота
$admin = file_get_contents($adm);
$startstatus = 'STATUS_FREE4CHAT';
for($i = 0; $i < count($login); $i++) {
    $line++;
    list($uin, $password) = explode(";", $logins[$line]);
    $icq = new WebIcqPro();
    $icq->setOption('UserAgent', 'miranda');
        if($icq->connect($uin, $password)) {
            $icq->sendMessage($admin, "Бот на номере ".$uin." запущен");
            $uptime = $status_time = time();
            $icq->setStatus($startstatus);
            $status = $startstatus;
        } else {
            echo $icq->error;
        }
}

   
 
 автор: вит   (18.04.2007 в 10:35)   письмо автору
 
   для: SnooPI   (18.04.2007 в 09:31)
 

Возможно, если вы читаете пароли из файла,то в конце строки присутствуют символы перевода строки и возврата каретки,попробуйте после строки
for($i = 0; $i < count($logins); $i++) {
добавить
$log=trim($logins[$i]);
list($uin, $password) = explode(";", $log);
и вообще зачем там нужна переменная $line, ее в сад
да и кстати в строке
for($i = 0; $i < count($login); $i++) {
ошибка надо
for($i = 0; $i < count($logins); $i++) {
и что это за путь к файлу
$login = 'inc/uin;pass.txt';
возможно надо быть немного внимательнее

   
 
 автор: SnooPI   (18.04.2007 в 12:23)   письмо автору
 
   для: вит   (18.04.2007 в 10:35)
 

Все получилось, только почему-то боты запускаются, но потом один из них вылетает (

   
 
 автор: SnooPI   (18.04.2007 в 12:24)   письмо автору
 
   для: SnooPI   (18.04.2007 в 12:23)
 

А вылетает тот, который был первый в списке..
в списке всего 2 нмоера и пароля

   
 
 автор: cheops   (18.04.2007 в 14:09)   письмо автору
 
   для: SnooPI   (18.04.2007 в 09:31)
 

Сообщение об ошибке как выглядит?

   
 
 автор: SnooPI   (18.04.2007 в 19:53)   письмо автору
 
   для: cheops   (18.04.2007 в 14:09)
 

Ошибки никак не вывести т.к. 2 номер норм заргужется.....ерор_репортинг не помогает....потому что файл грузится и грузится...вообщем сет_тайм_лимит(0)

   
 
 автор: SnooPI   (18.04.2007 в 19:59)   письмо автору
 
   для: SnooPI   (18.04.2007 в 19:53)
 

Вообщем первый номер запускается, тот который первый в списке и сразу вылетает...а второй номер нормально загружается(последний в списке)

   
 
 автор: SnooPI   (18.04.2007 в 20:03)   письмо автору
 
   для: SnooPI   (18.04.2007 в 19:59)
 

А еще я бы хотел сделать рестарт бота, но как сделать так чтобы рестартился только этот бот с которого пишу сообщение restart....
Но ведь у нас берется из файла експлодом..как так сделать даже не знаю...
Функция рестарта наверно такая:

if($msg['message'] == '.restart') {
     if($msg['from'] == $admin) {
        $icq->sendMessage($admin, "Бот на номере ".$uin." перезапускается");
        for($i = 0; $i < count($logins); $i++) {
        $flog = trim($logins[$i]);
        list($uin, $password) = explode(";", $flog);
        $icq = new WebIcqPro();
        $icq->setOption('UserAgent', 'miranda');
            if($icq->connect($uin, $password)) {
                $icq->sendMessage($admin, "Бот на номере ".$uin." запущен");
                $uptime = $status_time = time();
                $icq->setStatus($startstatus);
                $status = $startstatus;
            } else {
                $icq->sendMessage($admin, "Ошибка: ".$icq->error);
            }
        }
    }
}

Или лучше можете посоветовать?

   
 
 автор: SnooPI   (19.04.2007 в 08:10)   письмо автору
 
   для: SnooPI   (18.04.2007 в 20:03)
 

Кто в силах ответить?

   
 
 автор: SnooPI   (20.04.2007 в 00:58)   письмо автору
 
   для: SnooPI   (19.04.2007 в 08:10)
 

Странная ошибка...
Если засунуть 3 номера в файлик, то первый номер подключает, второй подключает, первый выключает, третий подключает,второй выключает
Вообщем рабоатет только тот бот, который вызван был последним..странно

   
 
 автор: SnooPI   (21.04.2007 в 11:11)   письмо автору
 
   для: SnooPI   (20.04.2007 в 00:58)
 

:(

   
 
 автор: CrazyAngel   (21.04.2007 в 11:13)   письмо автору
 
   для: SnooPI   (21.04.2007 в 11:11)
 

может нельзя с одного IP сразу несколько коннектов?

   
 
 автор: SnooPI   (21.04.2007 в 12:37)   письмо автору
 
   для: CrazyAngel   (21.04.2007 в 11:13)
 

Да это тут не причем...
ОШибка в коде..только не пойму где...
Почему все номера выключаются , а последний номер в списке норм работает :(

   
 
 автор: CrazyAngel   (21.04.2007 в 13:22)   письмо автору
 
   для: SnooPI   (21.04.2007 в 12:37)
 

вы каждый раз делаете новый объект, затирая старый

$icq = new WebIcqPro(); 


может это не правильно

   
 
 автор: SnooPI   (22.04.2007 в 00:33)   письмо автору
 
   для: CrazyAngel   (21.04.2007 в 13:22)
 

странно, вывел это из цикла, а теперь цикл не так рабоатет...только самый первый уин в списке подключает

   
 
 автор: Суслик   (29.04.2007 в 02:04)
 
   для: SnooPI   (22.04.2007 в 00:33)
 

Я думаю можно поступить проще... Зделаем так называемый крон файл, который будет невидимо от наших глаз запускаться. Файлег -


######CRON BOT##### 
#cron.php

<?php
$server 
'wwww.example.com'// Сервер
$dir '/bot.php' // Путь до бота

$fp fsockopen($server,80,$errno,$errstr,5);
$out "GET ".$dir ." HTTP/1.1\r\n";
$out .= "Host: $server\r\n";
$out .= "Connection: Close\r\n\r\n";
fwrite($fp$out);

?>


После чего пишем в нашем файле бота... такую строчку -


switch (strtolower($msg['message'])){
case '--restart':
if($msg['from'] == ADMINUIN)
{
    $icq->sendMessage(ADMINUIN, "Сервис Bot перезапускается...");
    $icq->disconnect();
    sleep(5); // Слипим на 5 сек, чтобы сервант банан не навешал.
    include('cron.php'); 
/*

Инклюдим наш крон. Он исполняется, запускает 2 копию нашего скрипта
после чего, мы успещно завершаем этот скрипт. А новый скрипт запускается.
Я думаю и с циклами вы поймете.. Файл с уинами зделать можно не через эксплод, а через SERIALISE =)

или parse_ini_file();
*/

    exit();
}else{
    $icq->sendMessage($msg['from'], "Доступ запрещен");
}
}

   
 
 автор: Суслик   (29.04.2007 в 02:08)
 
   для: Суслик   (29.04.2007 в 02:04)
 

Если будут вопросы по этому поводу можете на мыло намылить, помогу мне невпадлу, понимаю Ваш энтузиазм =)

Мыло - super-suselik[сабачатина]мэйл.ру (Спам задрал!)

   
 
 автор: SnooPI   (29.04.2007 в 02:19)   письмо автору
 
   для: Суслик   (29.04.2007 в 02:08)
 

Спасибо большое, рестарт работает...
А можете тепрь сказать как запускать сразу несколько ботов которые находяться в файле..
ну допустим через parse_ini_file()

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования