Форум программистов, компьютерный форум, киберфорум
PHP: сети
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 Аватар для NotAffraid
9 / 9 / 6
Регистрация: 13.09.2012
Сообщений: 136

Регистрация (curl, https, captcha)

24.02.2013, 02:49. Показов 2087. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, прошу помощи, так как после длительного времени просиживания, ничего не получилось.
Все время отказ от сервера.

Представляю вашему вниманию регистрацию аккаунта на World of Tanks.ru .
Помогите доделать его, потому-что сервер не хочет принимать пост-данные.

В данном скрипте использую CURL для получения содержимого и отправки POST-запросов.
Каптчу вводим ручками...

URL Регистрации: https://worldoftanks.ru/registration/ru/

файл index.php:
Кликните здесь для просмотра всего текста

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
<?php
 
// Кодировка
header('Content-Type: text/html; charset=utf-8');
 
?>
 
<html>
<head>
    <title>RegAccWOT v0.1</title>
</head>
<body>
 
<?php
 
// Настройка локали
setlocale(LC_ALL, 'ru_RU.65001', 'rus_RUS.65001', 'Russian_Russia. 65001', 'russian');
 
// Устанавливаем часовой пояс, Украина/Киев
date_default_timezone_set('Europe/Kiev');
 
// Инклюдим класс ассистента
include_once ("reg.class.php");
 
// Экземпляр класса
$regClass = new regClass;
 
// Отправляем данные
$regClass->reg_login = "yrtytryrtyr111@gmail.com";
$regClass->name = "yrtytryrtyr111";
$regClass->reg_password = "yrtytryrtyr111222";
$regClass->reg_re_password = "yrtytryrtyr111222";
 
if (isset($_POST['submit']))
{
    // Отправляем данные
    $regClass->cap_1 = $_POST['captcha'];
 
    // Выполняем
    $regClass->registration();
}
else
{
    // Выполняем
    $regClass->main();
}
 
?>
</body>
</html>


файл reg.class.php:
Кликните здесь для просмотра всего текста
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
<?php
 
// Класс для регистрации WorldOfTanks.ru
class regClass
{
 
    // Для регистрации: reg_login, name, reg_password, reg_re_password, cap_0 (captcha).
    // Отправка запроса -> /registration/ru/
 
    // Требуемые данные
    public $reg_login, $name, $reg_password, $reg_re_password;
    // Спратанные токены
    public $csrfmiddlewaretoken, $form_token, $cap_0;
    // Каптча
    public $cap_1;
 
    // Главный метод
    public function main()
    {
        // Ищем данные
        $this->search_data();
        // Показываем полученные данные и каптчу для ввода
        echo '<form action="'.$_SERVER['PHP_SELF'].'" method="post">';
        echo '<table align="center" style="border: gray 1px solid">';
        echo '<th colspan="2" bgcolor="lightgray">Регистрация аккаунтов World of Tanks</th>';
        echo '<tr><td><strong>E-mail:</strong></td><td align="center"><input type="text" name="email" value="'.$this->reg_login.'" maxlength="50" style="width: 100%; border: gray 1px solid" disabled></td></tr>';
        echo '<tr><td><strong>Имя в игре:</strong></td><td align="center"><input type="text" name="login" value="'.$this->name.'" maxlength="50" style="width: 100%; border: gray 1px solid" disabled></td></tr>';
        echo '<tr><td><strong>Пароль:</strong></td><td align="center"><input type="text" name="password" value="'.$this->reg_password.'" maxlength="50" style="width: 100%; border: gray 1px solid" disabled></td></tr>';
        echo '<th colspan="2" bgcolor="lightgray"><hr></th>';
        echo '<tr><td><strong>csrfmiddlewaretoken:</strong></td><td style="border: gray 1px solid">'.$this->csrfmiddlewaretoken.'</td></tr>';
        echo '<tr><td><strong>form_token:</strong></td><td style="border: gray 1px solid">'.$this->form_token.'</td></tr>';
        echo '<tr><td><strong>cap_0:</strong></td><td style="border: gray 1px solid">'.$this->cap_0.'</td></tr>';
        echo '<th colspan="2" bgcolor="lightgray"><hr></th>';
        echo '<tr><td><img src="'.$this->captcha($this->cap_0).'" title="Каптча"></td><td align="center"><input type="text" name="captcha" maxlength="6" size="6" style="width: 100%; border: gray 1px solid; text-align: center; font-size: 2em"></td></tr>';
        echo '<th colspan="2" bgcolor="lightgray"><input type="submit" name="refresh" value="Обновить"><input type="submit" name="submit" value="Регистрировать"></th>';
        echo '</table>';
        echo '</form>';
        echo '<p align="center"><small>* Скрипт представлен для показа своей работы. <br/> Использование скрипта больше 3 раз <strong>запрещено!</strong></small></p>';
        echo '<p align="center"><small>&copy; 2013 <strong>RegAccWOT</strong> | <a href="mailto:dmitrypavlov.design@gmail.com?subject=RegAccWOT">Dmitry Pavlov</a></small></p>';
    }
 
    public function registration()
    {
        // Отправем данные для регистрации
        $html = $this->get_page_https('https://worldoftanks.ru/registration/ru/','csrfmiddlewaretoken='.$this->csrfmiddlewaretoken.'&form_token='.$this->form_token.'&reg_login='.$this->reg_login.'&name='.$this->name.'&reg_password='.$this->reg_password.'&reg_re_password='.$this->reg_re_password.'&cap_0='.$this->cap_0.'&cap_1='.$this->cap_1);;
        echo "Запрос отправлен.";
        echo $html;
    }
 
    private function search_data()
    {
        // Получаем содержимое страницы регистрации
        $html = $this->get_page_https('http://worldoftanks.ru/registration/ru/', '');
        // Ищем csrfmiddlewaretoken
        preg_match_all("~<input type='hidden' name='csrfmiddlewaretoken' value='(.*?)' />~is", $html, $matches, PREG_PATTERN_ORDER);
        // Ищем form_token
        preg_match_all('~<input type="hidden" name="form_token" value="(.*?)" id="id_form_token" />~is', $html, $matches2, PREG_PATTERN_ORDER);
        // Ищем cap_0 (captcha)
        preg_match_all('~<input tabindex="5" type="hidden" name="cap_0" value="(.*?)" id="id_cap_0" />~is', $html, $matches3, PREG_PATTERN_ORDER);
        // Заносим данные в глобальные переменные
        $this->csrfmiddlewaretoken = $matches[1][0];
        $this->form_token = $matches2[1][0];
        $this->cap_0 = $matches3[1][0];
    }
 
    private function captcha($hash)
    {
        return $result = 'https://worldoftanks.ru/captcha/?session_key='.$hash;
    }
 
    // Получение страницы, отправка post-запроса (соеденение https)
    private function get_page_https($url, $postdata)
    {
        // User-agent
        $uagent = "Opera/9.80 (Windows NT 6.2; Win64; x64) Presto/2.12.388 Version/12.14";
        // Хост
        $host = "worldoftanks.ru";
        // Реферер (откуда мы пришли, для маскировки)
        $referer = "http://worldoftanks.ru/registration/ru/";
  
        // Формируем заголовки
        $headers = array   ('Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
                            'Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3',
                            'Accept-Encoding: gzip, deflate');
        // Инициализация
        $ch = curl_init($url);
        // Отключаем проверку SSL
        curl_setopt($ch, CURLFTPAUTH_SSL, 0);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);    
        // Указываем нужные параметры CURL
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); 
        curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
        curl_setopt($ch, CURLOPT_ENCODING, "chunked");
        curl_setopt($ch, CURLOPT_USERAGENT, $uagent);
        curl_setopt($ch, CURLOPT_REFERER, $referer);
        curl_setopt($ch, CURLOPT_TIMEOUT, 120);
 
        if (!empty($postdata))
        {
            curl_setopt($ch, CURLOPT_POST, 1);
            curl_setopt($ch, CURLOPT_POSTFIELDS, $postdata);
        }
 
        // Используем для хранения кукисов
        curl_setopt($ch, CURLOPT_COOKIEJAR, "cookies.txt");
        curl_setopt($ch, CURLOPT_COOKIEFILE,"cookies.txt");
 
        // Получаем только контент
        $content = curl_exec($ch);
        
        // Разрываем соеденение
        curl_close($ch);
 
        return $content;
    }
}
 
?>


и файл cookies.txt для кукисов
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
24.02.2013, 02:49
Ответы с готовыми решениями:

Не работает curl с HTTPS. Как быть?
Всем привет! Есть код curl для авторизации. Код работает, но возникла проблема с https. Пытаюсь авторизоваться на сайте с https, но выдает...

Очень долго выполняется curl + https
Вот этот код выполняется 20 секунд! &lt;?php $api_login = '...'; // Логин $api_password = '...'; // Пароль $api_request =...

Автоматическая регистрация curl
Есть один сайт который хотелось бы парсить но у него регистрация и страницы недоступны для парсинга вот форма входа на сайт &lt;form...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
24.02.2013, 02:49
Помогаю со студенческими работами здесь

Как правильно сформировать запрос anti-captcha.com через curl?
Подскажите как правильно сформировать запрос https://api.anti-captcha.com/createTask из документации...

CURL и https
Ситуация такая. Есть скрипт который должен производить авторизацию на сайте. Но он почему то не срабатывает. И вместо админ панели браузер...

Curl & cookies & https
Добрый день! Такая проблемка с куками и курлом. Есть некий сайт(site) для получения полного доступа к одному разделу требуется...

Curl и HTTPS ничего не работает
Пишу авторизацию для вк. Я не понимаю в чем дело.. вот код headerlist = curl_slist_append(headerlist, &quot;Host:login.vk.com&quot;); ...

Curl авторизация на https сайте
Добрый день подскажите как в bash через curl залогиниться на сайте. #curl -u...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru