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

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($host, 80, $errno, $error, 30) or die ("Ошибка № ".$errno.": ".$error);
        
    fputs($t, $data);
        while(!
    feof($t)) {$output .= fgets($t, 1024);}
        return 
    $output;
    }

    function 
    get_cookies($page) {
        
    $headers = substr($page, 0, strpos($page, "\r\n\r\n"));
        
    $fragment1 = substr($headers, strpos($headers, "Set-Cookie: "));
        
    $cookie1 = str_replace("Set-Cookie: ", "", substr($fragment1, 0, strpos($fragment1, "; ")));
        
    $fragment2 = str_replace("Set-Cookie: ", "", substr($fragment1, strpos($fragment1, "\r\n")));
        
    $cookie2 = str_replace("\r\n", "", substr($fragment2, 0, strpos($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_hs, strpos($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($page, strpos($page, "phpbb2mysql_sid"));   //---|get sid
    $sid = substr($sid, strpos($sid, "=")+1, 32);             //---|
    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(0, strlen($aya)-1);
            
    $nm .= $aya[$x];
            
    $mail .= rand(0, 9);
    //        $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($host, 80, $errno, $error, 30) or die ("ERROR!");
        
    fputs($tr, $post);
        while(!
    feof($tr)) {echo fread($tr, 1024);}
        
    $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
    Что неужели никто не может проверить маленький скриптик?