Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

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

 

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

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

тема: Проблема с капчей на Рамблере
 
 автор: umklaidet   (17.01.2009 в 12:08)   письмо автору
 
 

Пишу скриптик для облегчения регистрации аккаунта на Рамблере (поборники сетевой этики - будьте покойны, это не для спама). Буду благодарен в денежном эквиваленте, если поможете решить проблему.

Начало реги: http://id.rambler.ru/script/newuser.cgi
Введите что угодно, чтобы попасть на 2-ю страницу реги, там мы увидим несколько полей, в том числе капчу. В исходнике оно выглядит так:

<input type="hidden" name="number" value="d023a53325b253329899c11b1427722e">
<input type="text" name="hash" value="" size="10" tabindex="1">


Скрипт мой спрашивает у меня капчу, показывая картинку, остальные поля заполняет сам и отсылает Рамблеру (включая соответствующий number). А Рамблер ругается на неправильно введенное число картинки.

Код скрипта:

    function PostCurlPage($pageSpec, $data)
    {
            $agent = "up.b";
            $header[] = "Accept: text/vnd.wap.wml,*.*";
            $ch = curl_init($pageSpec);
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
            curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
            curl_setopt($ch, CURLOPT_VERBOSE, 1);
            curl_setopt($ch, CURLOPT_USERAGENT, $agent);
            curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
            curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
            curl_setopt($ch, CURLOPT_POST, 1);
            curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
            curl_setopt($ch, CURLOPT_HEADER, 1);
            curl_setopt($ch, CURLOPT_COOKIEJAR, "planeta.txt");
            curl_setopt($ch, CURLOPT_COOKIEFILE, "planeta.txt");
            $tmp = curl_exec ($ch);
            curl_close ($ch);
            return $tmp;
    }

if (!$action)
    {
        $login = "qweqweqeqw";
        $data = "step=one&login=$login&firstname=$login&lastname=$login";
        $content = PostCurlPage("http://id.rambler.ru/script/newuser.cgi", $data);
        preg_match("/<\/td><td><img src=\"\/captcha\/(.*)\.jpg\" alt=\"\" border=\"0\"/isU", $content, $matches);
        if ($matches[1]) print "<img src='http://id.rambler.ru/captcha/".$matches[1].".jpg'>
                <form action='' method='post'>
                    <input type='text' name='captcha' size=10>
                    <input type='hidden' name='login' value='$login'>
                    <input type='hidden' name='action' value='captcha'>
                    <input type='hidden' name='number' value='".$matches[1]."'>
                    <input type='submit' value='ok'>
               </form>"; else print "bad login";
    }
    
    if ($action == "captcha")
    {
        $data = "step=two&login=$login&domain=rambler.ru&firstname=$login&lastname=$login&password=123456&password2=123456&question=".urlencode("Номер Вашего паспорта")."&answer=12345&icq_mode=none&gender=2&news=0&number=$number&hash=$captcha&recoverpassword=";
        $content = PostCurlPage("http://id.rambler.ru/script/newuser.cgi", $data);
        print $data.$content;
    }


Если кто захочет помочь индивидуально - ася 159574539

  Ответить  
Rambler's Top100
вверх

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