PDA

Просмотр полной версии : [Помогите!] Авторизация в ДО на delphi


qwert-yg
07.03.2011, 19:22
Я Пытаюсь авторизоваться в ДО через delphi Но не могу понять как выбрать нужный сервер и получить sid.


procedure TForm1.Button1Click(Sender: TObject);
var data: TStringList;
html: string;
begin
data := TStringList.Create;
Id[Ссылки могут видеть только зарегистрированные и активированные пользователи]('[Ссылки могут видеть только зарегистрированные и активированные пользователи]');
data.Add('loginForm_default_username=ololoi70');
data.Add('loginForm_default_password=12345');
html := Id[Ссылки могут видеть только зарегистрированные и активированные пользователи]('[Ссылки могут видеть только зарегистрированные и активированные пользователи]', data);

if Pos('exitURL', html)<>0 then Label1.Caption := 'Залогинелись'
else Label1.Caption := 'НЕ Залогинелись';

end;



Как мне лучше авторизацию оформить? И главное как получить сид?

Mebius
23.03.2011, 02:01
Я Пытаюсь авторизоваться в ДО через delphi Но не могу понять как выбрать нужный сервер и получить sid.



Как мне лучше авторизацию оформить? И главное как получить сид?

Разъясняю вкратце



procedure TForm1.Button1Click(Sender: TObject);
var data: TStringList;
html: string;
begin
data := TStringList.Create;
Id[Ссылки могут видеть только зарегистрированные и активированные пользователи]('[Ссылки могут видеть только зарегистрированные и активированные пользователи]'); - ты только что скачал картинку не имеющую никакого отношения к авторизации+ данная строка вообще тут нафиг не нужна!
data.Add('loginForm_default_username=ololoi70');
data.Add('loginForm_default_password=12345');
html := Id[Ссылки могут видеть только зарегистрированные и активированные пользователи]('[Ссылки могут видеть только зарегистрированные и активированные пользователи]', data);

if Pos('exitURL', html)<>0 then Label1.Caption := 'Залогинелись'
else Label1.Caption := 'НЕ Залогинелись';
две строчки выше вообще идиотизм тк не залогинелся в принципе!

end;


А теперь нормальный код по нажатию на батон:



procedure TForm1.Button1Click(Sender:TObject);
var
html:string;
data:tstringlist;
begin
data:=TStringList.Create;
data.Add('loginForm_default_username=ololoi70');
data.Add('loginForm_default_password=12345');
html:=id[Ссылки могут видеть только зарегистрированные и активированные пользователи]('[Ссылки могут видеть только зарегистрированные и активированные пользователи]', data);
if Pos('exitURL', html)<>0 then Label1.Caption:='Success'
else
Label1.Caption:='Fail';
data.Free;
end;



таким образом ты зайдешь на страничку выбора сервера.

З.Ы. Писал от руки прямо тут!

Добавлено через 2 минуты
Когда допрет как дальше делать, не забудь включить редирект

АзЕсмьЦарь
25.03.2011, 10:05
Я Пытаюсь авторизоваться в ДО через delphi Но не могу понять как выбрать нужный сервер и получить sid.



Как мне лучше авторизацию оформить? И главное как получить сид?

После того, как ты получил исходный код страницы ДО в свою программу, нужно проанализировать полученную строчку (с точки зрения программирования полученный исходник - это просто строка между тегами <html></html>. Поэтому внимательно изучи работу со строками (поиск в строке, копирование и т.д.).
Пример проги можешь посмотреть здесь:
[Ссылки могут видеть только зарегистрированные и активированные пользователи]

Slavaberezin
17.03.2012, 17:15
var
A,B,C:string;
Data:TstringList;
begin
Data:=tstringlist.create;
Data.Add('loginForm_default_username='+Edit1.Text) ;
Data.Add('loginForm_default_password='+Edit2.Text) ;
A:=form1.id[Ссылки могут видеть только зарегистрированные и активированные пользователи]('[Ссылки могут видеть только зарегистрированные и активированные пользователи]',data);
B:=pars('[Ссылки могут видеть только зарегистрированные и активированные пользователи]'+edit3.Text+'.darkorbit.bigpoint.com/GameAPI.php?req=',A,'&ref_pid=');
C:=form1.id[Ссылки могут видеть только зарегистрированные и активированные пользователи]('[Ссылки могут видеть только зарегистрированные и активированные пользователи]'+edit3.text+'.darkorbit.bigpoint.com/GameAPI.php?req='+B);
if pos('logout',C) > 0 Then
begin
Memo1.Lines.Add('Авторизация завершена');
Memo1.Lines.Add(copy(C,pos('dosid=',C)+6,32));
end
else
Memo1.Lines.Add('Неверные данные');

function TForm1.pars(z, s, x: string): string;
var
p:integer;
c:string;
begin
c:=copy(s,pos(z,s)+length(z),length(s)-pos(z,s)-length(z));
p:=pos(x,c);
result:=copy(c,1,p-1);
end;

Number/1/
17.03.2012, 21:01
var
A,B,C:string;
Data:TstringList;
begin
Data:=tstringlist.create;
Data.Add('loginForm_default_username='+Edit1.Text) ;
Data.Add('loginForm_default_password='+Edit2.Text) ;
A:=form1.id[Ссылки могут видеть только зарегистрированные и активированные пользователи]('[Ссылки могут видеть только зарегистрированные и активированные пользователи]',data);
B:=pars('[Ссылки могут видеть только зарегистрированные и активированные пользователи]'+edit3.Text+'.darkorbit.bigpoint.com/GameAPI.php?req=',A,'&ref_pid=');
C:=form1.id[Ссылки могут видеть только зарегистрированные и активированные пользователи]('[Ссылки могут видеть только зарегистрированные и активированные пользователи]'+edit3.text+'.darkorbit.bigpoint.com/GameAPI.php?req='+B);
if pos('logout',C) > 0 Then
begin
Memo1.Lines.Add('Авторизация завершена');
Memo1.Lines.Add(copy(C,pos('dosid=',C)+6,32));
end
else
Memo1.Lines.Add('Неверные данные');

function TForm1.pars(z, s, x: string): string;
var
p:integer;
c:string;
begin
c:=copy(s,pos(z,s)+length(z),length(s)-pos(z,s)-length(z));
p:=pos(x,c);
result:=copy(c,1,p-1);
end;
нахрена для каждого нового линка новая переменная? неужели трудно записывать все линки в 1 переменную?

Slavaberezin
19.03.2012, 16:55
1)Если тебе надо с одной переменной, то и делай с одной. Я тут причём ?
2)С одной переменной никаким раком не получится, нужно как минимум 2: TstringList; и String.