Помогите со скриптом

Discussion in 'PHP' started by _gr34t, 9 Jul 2009.

  1. _gr34t

    _gr34t Member

    Joined:
    26 Oct 2008
    Messages:
    89
    Likes Received:
    13
    Reputations:
    5
    Помогите новичку со скриптом

    Написал скрипт для авторегистрации на _http://www.volchat.ru/forum/
    Обход капчи - ручной ввод. Но при попытке зарегистрировать юзера пишет, что введённый код не совпадает с проверочным. Кому нечего делать проверьте пож.
    PHP:
    <?

    //VARs
    $host "www.volchat.ru";
    $path "/forum/profile.php?mode=register";
    $p_to_pics "/forum/profile_pic.php?l=";
    $post_path "/forum/profile.php";

    //FUNCTIONs
    function get_something($host$path$cookie FALSE) {
        
    $data "GET ".$path." HTTP/1.1\r\n";
        
    $data .= "Host: ".$host."\r\n";
        
    $data .= "User-Agent: Opera/9.63 (Windows NT 5.1; U; ru) Presto/2.1.1\r\n";
        
    $data .= "Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif\r\n,  image/x-xbitmap, */*;q=0.1\r\n";
        
    $data .= "Accept-Language: ru-RU,ru;q=0.9,en;q=0.8\r\n";
        
    $data .= "Accept-Encoding: gzip,identity\r\n";
        
    $data .= "Accept-Charset: iso-8859-1, utf-8, utf-16, *;q=0.1,UCS-2;q=0, UCS-4;q=0, UTF-1;q=0\r\n";
        
    $data .= "TE: deflate, gzip, chunked, identity, trailers\r\n";
        if (
    $cookie) {
    //        $data .= "Referer: http://".$host.$path."\r\n";
            
    $data .= "Cookie: ".$cookie."\r\n";
        }
        
    $data .= "Connection: close;\r\n\r\n";

        
    $t fsockopen($host80$errno$error30) or die ("Ошибка № ".$errno.": ".$error);
        
    fputs($t$data);
        while(!
    feof($t)) {$output .= fgets($t1024);}
        return 
    $output;
    }

    function 
    get_cookies($page) {
        
    $headers substr($page0strpos($page"\r\n\r\n"));
        
    $fragment1 substr($headersstrpos($headers"Set-Cookie: "));
        
    $cookie1 str_replace("Set-Cookie: """substr($fragment10strpos($fragment1"; ")));
        
    $fragment2 str_replace("Set-Cookie: """substr($fragment1strpos($fragment1"\r\n")));
        
    $cookie2 str_replace("\r\n"""substr($fragment20strpos($fragment2"; ")));
        
    $cooks $cookie1."; ".$cookie2;
        return 
    $cooks;
    }

    function 
    show_capcha($host$path$cookie) {
        for(
    $i=0$i<8$i++) {
            
    $pic_with_hs get_something($host$path.$i$cookie);
            
    $gif substr($pic_with_hsstrpos($pic_with_hs"\r\n\r\n")+4);
            
    file_put_contents("{$i}.gif"$gif);
            
    $capcha .= "<img src='{$i}.gif'>";
        }
        return 
    $capcha;
    }

    //PROGRAM
    $page get_something($host$path);                      //---get page whith cookies
    $cookie get_cookies($page);                             //---get cookies
    $sid substr($pagestrpos($page"phpbb2mysql_sid"));   //---|get sid
    $sid substr($sidstrpos($sid"=")+132);             //---|
    echo show_capcha($host$p_to_pics$cookie);             //---get captcha!
    ?>
    <form method='get' action=''>
    Капча: <input type='text' name='cap'>
    <input type='Submit' name='go' value='go'>
    </form>
    <?
    if (isset($_GET['go']) && isset($_GET['cap'])) {
        
    $aya "абвгдежзиклмнопрстуфхцчшщъыьэюяАБВГДЕЖЗИКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ";
    //    $az = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
        
    for($i=0$i<9$i++) {
            
    $x rand(0strlen($aya)-1);
            
    $nm .= $aya[$x];
            
    $mail .= rand(09);
    //        $y = rand(0, strlen($az)-1);
    //        $pass .= $az[$y];
        
    }
        
    $pass "8967trtr1";

        
    $reginf "username=".$nm."&user_email=".$mail."@mail.ru&user_email_confirm=".$mail."@mail.ru&robot_confirm=".$_GET['cap']."&new_password=".$pass."&password_confirm=".$pass."&user_from=Z-city&user_gender=1&agree_rules=1&submit=Отправить&mode=register&u=-1&sid=".$sid."&forum_rules_present=1";
        
    $post "POST ".$post_path." HTTP/1.1\r\n";
        
    $post .= "Host: ".$host."\r\n";
        
    $post .= "User-Agent: Opera/9.63 (Windows NT 5.1; U; ru) Presto/2.1.1\r\n";
        
    $post .= "Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif\r\n,  image/x-xbitmap, */*;q=0.1\r\n";
        
    $post .= "Accept-Language: ru-RU,ru;q=0.9,en;q=0.8\r\n";
        
    $post .= "Accept-Encoding: gzip,identity\r\n";
        
    $post .= "Accept-Charset: iso-8859-1, utf-8, utf-16, *;q=0.1,UCS-2;q=0, UCS-4;q=0, UTF-1;q=0\r\n";
        
    $post .= "Cookie: ".$cookie."\r\n";
        
    $post .= "Content-Type: application/x-www-form-urlencoded\r\n";
        
    $post .= "Content-Length: ".strlen($reginf)."\r\n";
        
    $post .= "Connection: close\r\n\r\n";
        
    $post .= $reginf;
        
    $tr fsockopen($host80$errno$error30) or die ("ERROR!");
        
    fputs($tr$post);
        while(!
    feof($tr)) {echo fread($tr1024);}
        
    $string $nm." registered with password '".$pass."' на адрес ".$mail."@mail.ru\r\n";
        
    $log fopen("reg.log"a) or die ("Не удаётся открыть файл");
        
    fwrite($log$string) or die ("Не удаётся записать в файл");
        
    fclose($log);
    }
    ?>
     
    #1 _gr34t, 9 Jul 2009
    Last edited: 11 Jul 2009
  2. _gr34t

    _gr34t Member

    Joined:
    26 Oct 2008
    Messages:
    89
    Likes Received:
    13
    Reputations:
    5
    Что неужели никто не может проверить маленький скриптик?