Форум программистов, компьютерный форум, киберфорум
Delphi: Сети
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
3 / 3 / 2
Регистрация: 24.05.2013
Сообщений: 158
1

Авторизация на сайте

08.07.2013, 23:42. Показов 1138. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Нужно сделать авторизацию на сайте (игры Travian - http://tx3.travian.ru/)

HttpAnalyzer выдает (процесс Internet Explorer) (http://tx3.travian.ru/dorf1.php)
name ,,,,,
password ,,,,,
s1 Войти
w 1920:1080
login 1373308728



Нашел код
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
procedure TForm1.Button1Click(Sender: TObject);
var
StrPage:string;
LoginData:Tstringlist;
Response:TStringStream;
begin
 try
LoginData := TStringList.Create;
Response:=TStringStream.Create('');
LoginData.Add('name='+Edit1.Text);
LoginData.Add('password='+Edit2.Text);
idhttp1.post(ComboBox1.Text+'dorf1.php',LoginData,Response);
 finally
if Pos('Wellcome',response.datastring)>0 then
ShowMessage('ДА!')
else showmessage('НЕТ');
begin
Response.free;
LoginData.Free;
end;
end;
end;
На форме два поля Edit под пароль и логин, один ComboBox для выбора сервера (в нем - http://tx3.travian.ru), ну и IdHTTP1 с кнопкой.

После авторизации нужно скачать в Memo код страницы
Delphi
1
2
3
4
procedure TForm1.Button6Click(Sender: TObject);
begin
memo1.Lines.Text:= IdHttp1.Get (ComboBox1.Text+'dorf1.php');
end;
Так вот в мемо качается код страницы без авторизации.
P.S. после нажатия кнопки Button1 появляется 'нет'
В чем проблема?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.07.2013, 23:42
Ответы с готовыми решениями:

Авторизация на сайте
Пишу программу, которая должна авторизироваться на сайте и через определенное время парсить...

Авторизация на сайте
Подскажите,в чем ошибка.Мучаюсь уже пару дней. Вот сам код авторизации procedure...

Авторизация на сайте
Пишу программу для авторизации на сайте moemnenie*ru . Подключил модуль Antigate. Написал в двух...

Авторизация на сайте
Добрый день уважаемые форумчани! Перерыв не мало статей так и не получилось авторизироваться на...

8
0 / 5 / 2
Регистрация: 28.05.2013
Сообщений: 114
08.07.2013, 23:52 2
Цитата Сообщение от termir988 Посмотреть сообщение
Нужно сделать авторизацию на сайте (игры Travian - http://tx3.travian.ru/)

HttpAnalyzer выдает (процесс Internet Explorer) (http://tx3.travian.ru/dorf1.php)
name ,,,,,
password ,,,,,
s1 Войти
w 1920:1080
login 1373308728



Нашел код
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
procedure TForm1.Button1Click(Sender: TObject);
var
StrPage:string;
LoginData:Tstringlist;
Response:TStringStream;
begin
 try
LoginData := TStringList.Create;
Response:=TStringStream.Create('');
LoginData.Add('name='+Edit1.Text);
LoginData.Add('password='+Edit2.Text);
idhttp1.post(ComboBox1.Text+'dorf1.php',LoginData,Response);
 finally
if Pos('Wellcome',response.datastring)>0 then
ShowMessage('ДА!')
else showmessage('НЕТ');
begin
Response.free;
LoginData.Free;
end;
end;
end;
На форме два поля Edit под пароль и логин, один ComboBox для выбора сервера (в нем - http://tx3.travian.ru), ну и IdHTTP1 с кнопкой.

После авторизации нужно скачать в Memo код страницы
Delphi
1
2
3
4
procedure TForm1.Button6Click(Sender: TObject);
begin
memo1.Lines.Text:= IdHttp1.Get (ComboBox1.Text+'dorf1.php');
end;
Так вот в мемо качается код страницы без авторизации.
P.S. после нажатия кнопки Button1 появляется 'нет'
В чем проблема?
Нет означает, что вы не зашли, раз не зашли, код будет с не авторизованной страници
0
23 / 23 / 11
Регистрация: 12.01.2013
Сообщений: 223
09.07.2013, 13:42 3
что бы все норм прокатило тебе надо еще и остальные данные отправлять на сервер
s1 Войти
w 1920:1080
login 1373308728
0
3 / 3 / 2
Регистрация: 24.05.2013
Сообщений: 158
10.07.2013, 11:26  [ТС] 4
Цитата Сообщение от dvoryakanton Посмотреть сообщение
Нет означает, что вы не зашли, раз не зашли, код будет с не авторизованной страници
Я не тупой, и понял почему нет. (точнее что значит нет, а понять почему не могу)

Добавлено через 7 минут
Цитата Сообщение от Rurr Посмотреть сообщение
что бы все норм прокатило тебе надо еще и остальные данные отправлять на сервер
Побывал но не помогало. "login 1373308728"- вроде каждый раз другой, а "w 1920:1080" это разрешение и зачем оно мне(но все равно побывал)

Просканировал саму прогу (добавив в нее воббраузер) HttpAnalyzer'ом, получил:

name ////
password ////
s1 <DIV class="button-container addHoverClick hover">
<DIV class=button-background>
<DIV class=buttonStart>
<DIV class=buttonEnd>
<DIV class=buttonMiddle></DIV></DIV></DIV></DIV>
<DIV class=button-content>Войти</DIV></DIV>
w 1920:1080
login 1373389426

(не знаю что это дало...)

Добавлено через 14 часов 20 минут
P.S. Побывал включать HandleRedirects(через OI) но не помогло.
0
0 / 0 / 1
Регистрация: 06.03.2013
Сообщений: 139
10.07.2013, 14:29 5
Перед пост запросов сделай get на страницу авторизации, возможно сервер выдает что-то типо pssesionid(просто догадка я не снифал)

Добавлено через 1 минуту
1373308728 эти цифры скорее всего будут где-то в html коде get запроса(система защиты такая). Раз они всегда разные. И если они не совпадают то сервер конечно же говорит тебе , что все плохо.
0
3 / 3 / 2
Регистрация: 24.05.2013
Сообщений: 158
10.07.2013, 15:06  [ТС] 6
Цитата Сообщение от zlodey4ik Посмотреть сообщение
Перед пост запросов сделай get на страницу авторизации, возможно сервер выдает что-то типо pssesionid(просто догадка я не снифал)

Добавлено через 1 минуту
1373308728 эти цифры скорее всего будут где-то в html коде get запроса(система защиты такая). Раз они всегда разные. И если они не совпадают то сервер конечно же говорит тебе , что все плохо.
Т.е. мне скачать код страницы авторизации, найти и вырвать login... и вставить его в LoginData'у?

Вот код страницы:

HTML5
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
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title>Travian rux</title>
<meta http-equiv="cache-control" content="max-age=0" />
<meta http-equiv="pragma" content="no-cache" />
<meta http-equiv="expires" content="0" />
<meta http-equiv="imagetoolbar" content="no" />
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<meta name="content-language" content="ru" />
<link href="gpack/travian_Travian_4.2_Himmelsstuermer/lang/ru/compact.css?2f275" rel="stylesheet" type="text/css" /><link href="gpack/travian_Travian_4.2_Himmelsstuermer/lang/ru/lang.css?2f275" rel="stylesheet" type="text/css" /><link href="img/travian_basics.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="crypt.js?1370965549"></script>
<script type="text/javascript">
Travian.Translation.add(
{
    'allgemein.anleitung':  'Справка',
    'allgemein.cancel': 'Отменить',
    'allgemein.ok': 'ОК',
    'cropfinder.keine_ergebnisse': 'Ничего не было найдено'
});
Travian.applicationId = 'T4.2 Game';
Travian.Game.version = '4.2';
Travian.Game.worldId = 'rux18';
Travian.Game.speed = 3;
 
Travian.Templates = {};
    Travian.Templates.ButtonTemplate = "<button >\n\t<div class=\"button-container addHoverClick\">\n\t\t<div class=\"button-background\">\n\t\t\t<div class=\"buttonStart\">\n\t\t\t\t<div class=\"buttonEnd\">\n\t\t\t\t\t<div class=\"buttonMiddle\"><\/div>\n\t\t\t\t<\/div>\n\t\t\t<\/div>\n\t\t<\/div>\n\t\t<div class=\"button-content\"><\/div>\n\t<\/div>\n<\/button>\n";
 
</script>
<script type="text/javascript">
window.addEvent('domready', function() {
        Travian.Form.UnloadHelper.message = 'Были проведены некоторые изменения. Вы действительно желаете покинуть эту страницу?';
});
</script>   </head>
    <body class="v35 webkit chrome login perspectiveBuildings">
        
        <script type="text/javascript">
            window.ajaxToken = '7384b78c8700f75ba69d664212a9edbf';
        </script>
 
        <div id="background">
                                    <div id="bodyWrapper">
                                <img style="filter:chroma();" src="img/x.gif" id="msfilter" alt="" />
 
                <div id="header">
    <a id="logo" href="http://www.travian.ru/" target="_blank" title="TRAVIAN"></a>
 
    
    
    
    
    </div>
                <div id="center">
 
                    <div id="sidebarBeforeContent" class="sidebar beforeContent">
                                                                            
<div id="sidebarBoxMenu" class="sidebarBox   ">
    <div class="sidebarBoxBaseBox">
        <div class="baseBox baseBoxTop">
            <div class="baseBox baseBoxBottom">
                <div class="baseBox baseBoxCenter"></div>
            </div>
        </div>
    </div>
    <div class="sidebarBoxInnerBox">
        <div class="innerBox header noHeader">
                    </div>
        <div class="innerBox content">
            <ul>
    <li class="first">
        <a href="http://www.travian.ru/" title="Главная" target="_blank">ГЛАВНАЯ</a>
    </li>
 
    <li class="active">
        <a href="login.php" title="Вход">ВХОД</a>
    </li>
 
    <li >
        <a href="http://www.travian.ru/index.php?server=rux#register" title="Регистрация" target="_blank">РЕГИСТРАЦИЯ</a>
    </li>
 
    <li>
        <a href="http://forum.travian.ru" title="Форум" target="_blank">ФОРУМ</a>
    </li>
 
    <li >
        <a href="support.php" title="Поддержка">ПОДДЕРЖКА</a>
    </li>
</ul>       </div>
        <div class="innerBox footer">
                    </div>
    </div>
</div>                                              <div class="clear"></div>
                    </div>
 
                    <div id="contentOuterContainer">
                                                <div class="contentTitle">
                                                    </div>
                        <div class="contentContainer">
                            <div id="content" class="login">
                                <h1 class="titleInHeader">
    Вход</h1>
 
<script type="text/javascript">
Element.implement({
     //imgid: falls zu dem link ein pfeil gehört kann dieser "auf/zugeklappt" werden
     showOrHide: function(imgid) {
         //einblenden
         if (this.getStyle('display') == 'none')
         {
             if (imgid != '')
             {
                 $(imgid).className = 'open';
             }
         }
         //ausblenden
         else
         {
             if (imgid != '')
             {
                 $(imgid).className = 'close';
             }
         }
         this.toggleClass('hide');
    }
});
</script>
 
<div class="outerLoginBox">
    <h2>Добро пожаловать на Travian rux сервер!</h2>
        <noscript>
        <div class="noJavaScript">
            Деактивирован JavaScript. Для оптимального использования 
возможностей игры необходимо, чтобы в вашем браузере была 
включена поддержка JavaScript.     </div>
    </noscript>
        <div class="innerLoginBox">
        <form name="login" method="POST" action="dorf1.php">
            <table class="transparent loginTable">
                <tr class="account">
                    <td class="accountNameOrEmailAddress">
                        Имя или E-Mail                    </td>
                    <td>
                        <input type="text" name="name" value="" class="text" /><br />
                        <div class="error LTR">
                                                    </div>
                    </td>
                    <td>
                    </td>
                </tr>
                <tr class="pass">
                    <td>
                        Пароль:                   </td>
                    <td>
                        <input type="password" maxlength="20" name="password" value="" class="text" /><br />
                        <div class="error LTR">
                                                    </div>
                    </td>
                    <td>
                    </td>
                </tr>
                <tr class="lowResOption">
                    <td>
                        Версия для игроков                  </td>
                    <td colspan="2">
                        <input type="checkbox" class="check" id="lowRes" name="lowRes" value="1"     />
                        <label for="lowRes">с низкой скоростью Интернета.</label>
 
                    </td>
                </tr>
                <tr class="lowResInfo">
                    <td colspan="3">
                        (Внимание: В этой версии ограниченные функции карты)                 </td>
                </tr>
                <tr>
                    <td>
                    </td>
                    <td>
                        <button  type="submit" value="Войти" name="s1" id="s1" class="green " onclick="document.login.w.value=screen.width+':'+screen.height;">
    <div class="button-container addHoverClick">
        <div class="button-background">
            <div class="buttonStart">
                <div class="buttonEnd">
                    <div class="buttonMiddle"></div>
                </div>
            </div>
        </div>
        <div class="button-content">Войти</div>
    </div>
</button>
<script type="text/javascript">
    window.addEvent('domready', function()
    {
    if($('s1'))
    {
        $('s1').addEvent('click', function ()
        {
            window.fireEvent('buttonClicked', [this, {"type":"submit","value":"\u0412\u043e\u0439\u0442\u0438","name":"s1","id":"s1","class":"green ","title":"","confirm":"","onclick":"document.login.w.value=screen.width+\u0027:\u0027+screen.height;"}]);
        });
    }
    });
</script>
                        <input type="hidden" name="w" value="" />
                        <input type="hidden" name="login" value="1373453870" />
                    </td>
                    <td>
                    </td>
                </tr>
            </table>
        </form>
    </div>
    
 
            <div class="greenbox passwordForgotten">
                <div class="greenbox-top"></div>
                <div class="greenbox-content">
             <div class="passwordForgottenLink">
        <a onclick="" href="?forgotPassword=true" class="showPWForgottenLink">
            <img class="close" id="arrow" src="img/x.gif"/>Восстановление пароля        </a>
     </div>
     
                </div>
                <div class="greenbox-bottom"></div>
                <div class="clear"></div>
            </div>
        </div>
                                <div class="clear"></div>
                            </div>
                            <div class="clear">&nbsp;</div>
                        </div>
                        <div class="contentFooter"></div>
                    </div>
 
                    <div id="sidebarAfterContent" class="sidebar afterContent">
                                                    
<div id="sidebarBoxNews1" class="sidebarBox   sidebarBoxNews">
    <div class="sidebarBoxBaseBox">
        <div class="baseBox baseBoxTop">
            <div class="baseBox baseBoxBottom">
                <div class="baseBox baseBoxCenter"></div>
            </div>
        </div>
    </div>
    <div class="sidebarBoxInnerBox">
        <div class="innerBox header noHeader">
                    </div>
        <div class="innerBox content">
            <a href="#" onclick="
    $H(
    {
        data:
        {
            cmd: 'news',
            id: '1'
        }
    }).dialog(); return false;">Состоялось открытие скоростного сервера версии 4.2. Для начала игры необходимо пройти простую регистрацию.</a>     </div>
        <div class="innerBox footer">
                <a target="_blank" href="http://forum.travian.ru/showthread.php?t=218952">Подробнее</a>
        </div>
    </div>
</div>
<div id="sidebarBoxNews2" class="sidebarBox   sidebarBoxNews">
    <div class="sidebarBoxBaseBox">
        <div class="baseBox baseBoxTop">
            <div class="baseBox baseBoxBottom">
                <div class="baseBox baseBoxCenter"></div>
            </div>
        </div>
    </div>
    <div class="sidebarBoxInnerBox">
        <div class="innerBox header noHeader">
                    </div>
        <div class="innerBox content">
            <a href="#" onclick="
    $H(
    {
        data:
        {
            cmd: 'news',
            id: '2'
        }
    }).dialog(); return false;">Состоялось открытие скоростного сервера версии 4.2. Для начала игры необходимо пройти простую регистрацию.</a>     </div>
        <div class="innerBox footer">
                <a target="_blank" href="http://www.travian.ru/index.php?server=rux#register">Подробнее</a>
        </div>
    </div>
</div>                                              <div class="clear"></div>
                    </div>
 
                    <div class="clear"></div>
                </div>
 
                <div id="footer">
                    <div id="pageLinks">
                        <a href="http://www.travian.ru/" target="_blank">Главная</a>
                        <a href="http://forum.travian.ru" target="_blank">Форум</a>
                        <a href="http://www.travian.ru/links.php" target="_blank">Ссылки</a>
                        <a href="http://t4.answers.travian.ru/" target="_blank">FAQ - Answers</a>
                        <a href="http://www.travian.ru/agb.php" target="_blank">Основные положения</a>
                        <a href="http://www.travian.ru/impressum.php" target="_blank">Контакты</a>
                        <div class="clear"></div>
                                            </div>
                    <p class="copyright">© 2004—2013 Travian Games GmbH</p>
                </div>
 
                            </div>
 
            
            <div id="ce"></div>
 
            
                    </div>
 
        
        <iframe
    src="http://analytics.traviangames.com/piwik_route.php?app=TRAVIAN&amp;ts=1373453870&amp;tld=ru"
    style="position: absolute; height: 0px; left: 0px; overflow: hidden; top: 0px; visibility: hidden; width: 0px;"
></iframe>
            </body>
</html>
Нашел там строку
<input type="hidden" name="login" value="1373453870" />
Номер строки 205 (думаю он постоянный)

Как мне лучше вырезать этот "login" (В мемо качать не хочется, может бы м массив както...)

+

Как мне кнопку "нажать"
или это правильно - LoginData.Add('s1=Войти');
0
0 / 5 / 2
Регистрация: 28.05.2013
Сообщений: 114
11.07.2013, 01:38 7
Функция парсинга
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
function Pars(T_,ForS,_T: string): string;
var
a,b:integer;
begin
if (T_='') or (ForS='') or (_T='') then Exit;
a:=Pos(T_,ForS);
if a=0  then Exit else a:=a+Length(T_);
Fors:=Copy(ForS,a,Length(ForS)-a+1);
b:=Pos(_T,ForS);
if b>0 then
Result:=Copy(ForS,1,b-1);
end;
код для парсинга 1373453870
Delphi
1
login:=Pars('<input type="hidden" name="login" value="',htmldocument,'" />');
в переменной login типа string будет 1373453870
0
0 / 0 / 1
Регистрация: 06.03.2013
Сообщений: 139
11.07.2013, 14:31 8
Кнопку жать ненадо, парсишь значение как тебе выше описали. Составляешь запрос уже используя эти значения и снифай что тебе ответит сервер.Если опять отправит тебя то узнавай разрешения экрана и вставляй его.
0
0 / 5 / 2
Регистрация: 28.05.2013
Сообщений: 114
12.07.2013, 03:45 9
Цитата Сообщение от zlodey4ik Посмотреть сообщение
Кнопку жать ненадо, парсишь значение как тебе выше описали. Составляешь запрос уже используя эти значения и снифай что тебе ответит сервер.Если опять отправит тебя то узнавай разрешения экрана и вставляй его.
Короче, данный человек говорит о том, что не всё, что ты видешь в сниффере надо отправлять. Разрешение экрана нужно, чтобы подогнать страницу сайта под экран автоматом после входа.
0
12.07.2013, 03:45
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.07.2013, 03:45
Помогаю со студенческими работами здесь

Авторизация на сайте
У меня такая проблемма.Нужно через Delphi организовать авторизацию на сайте(Так же по логину и...

Авторизация на сайте
Заснифал предачу на сайт. Выходит Стр авторизации http://www.kor.ru/login/ RedirectURL ...

Авторизация на сайте
Добрый день! Создаю для школы программку эмитирующую авторизацию пользователя! *(Директор...

Авторизация на сайте
Добрый вечер! Помогите разобраться в чем ошибка! Вот исходник: procedure...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru