PDA

Просмотр полной версии : Проблема в коде


EnDoR
21.09.2012, 18:05
Здравствуйте,форумчане!
Понадобилась мне система управления шеллами,пробовал я Shell Wizard,честно говоря не понравилось,и тут я наткнулся на маленькую утилиту,которую написал Orb,называется она WSO Manager.Функционал там оказался очень скудный,и вообще программа на мой взгляд очень сырая.Но самое главное-идея мне понравилась и я решил ее довести до ума.И вот почему-то никак не могу разобраться в чем же дело:написал я модуль массового добавления шеллов из файла в формате shell|pass,всё добавляется в список правильно,но запрос через цикл foreach на сайты не шлется(правда тестировал пока только на денвере),хотя если использовать без цикла,то все параметры получаются от сервера без проблем.Вообщем вот код:


read_db();
elseif(($_POST['do']=='add') && isset($_POST['userfile'])) {

$m1=file(getcwd().'/'.$_POST['userfile']);
$m=array();
foreach($m1 as $k=>$v){
$m[$k]=explode('|',$v);
$postdata = http_build_query(
array(
'pass' =>$m[$k][1],
'a' => 'RC'
)
);
$result = get_content($m[$k][0], $postdata);
if($result)
$item = @unserialize($result);

if(!$item)
$item = array();
$item = array_merge($item, array(
'url' =>$m[$k][0],
'pass' =>$m[$k][1]
));
$database[] = $item;
save_db();


}
page_reload();

}

Save_db
function save_db() {
file_put_contents(DB_FILE, '<?php exit; ?>' . serialize($GLOBALS['database']));}

Read_db
function read_db() {
$content = str_replace('<?php exit; ?>', '', file_get_contents(DB_FILE));
$GLOBALS['database'] = @unserialize($content);}

get_content()
function get_content($url, $post) {
$opts = array('http' =>
array(
'method' => 'POST',
'proxy' => (defined('PROXY'))?('tcp://' . PROXY):null,
'header' => 'Content-type: application/x-www-form-urlencoded',
'content' => $post
)
);
$context = stream_context_create($opts);
return @file_get_contents($url, false, $context);
}

Хотелось бы конечно,чтобы сам Orb посмотрел тему,но тут уж как получится...
Буду благодарен за помощь, исходники программы можете скачать и посмотреть отсюда если не лень http://forum.antichat.ru/showpost.php?p=1391431&postcount=45

masterprof
21.09.2012, 20:13
Навскидку. Не проверял.
У вас идет чтение из файла, возможно проблема в том что переводы строки не убираются.
Попробуйте заменить
$m[$k]=explode('|',$v);
на
$m[$k]=explode('|',rtrim($v));

EnDoR
21.09.2012, 20:29
Навскидку. Не проверял.
У вас идет чтение из файла, возможно проблема в том что переводы строки не убираются.
Попробуйте заменить
$m[$k]=explode('|',$v);
на
$m[$k]=explode('|',rtrim($v));

Да,действительно!Проблема была в этом.Что-то я как-то не сообразил:yes:Большое Вам спасибо!
Тему можно закрывать.