Для начала нам понадобится Mozilla Firefox c установленным плагином [Ссылки могут видеть только зарегистрированные пользователи. ] для перехвата заголовков.
Выбираем сайт (например любой vBulletin). Я взял d3scene.ru
Вставляем в форму ввода любую фигню:
[Ссылки могут видеть только зарегистрированные пользователи. ]
Жмем Инструменты - Перехват Данных
Нажимать кнопку "Запустить перехват" в появившемся окне НЕ надо.
Теперь пытаемся залогинится (у нас это офк не получилось)
Ищем в нашем окне перехвата POST запрос (он там должен быть один)
[Ссылки могут видеть только зарегистрированные пользователи. ]
В колонке URL мы видим адрес, куда отправляется запрос.
Выберем это запрос. Слева внизу 2 раза тыкнем на строку с POSTDATA
Появится окошко с данными запроса.
[Ссылки могут видеть только зарегистрированные пользователи. ]
Сразу замечу что параметр "vb_login_md5password=" может быть пустым, так и нет, поэтому подключим юнит для работы с мд5.
[Ссылки могут видеть только зарегистрированные пользователи. ]
В uses добавляем idhttp, umd5.
umd5 - наш скачанный юнит
Теперь напишем отдельную функцию, в которую мы будем передавать ник и пасс, а получать true или false.
umd5 - наш скачанный юнит
Теперь напишем отдельную функцию, в которую мы будем передавать ник и пасс, а получать true или false.
Код:
function login(nick,pass:string):boolean;
Объявим переменные:
Код:
var
http:tidhttp;
post:tstringlist;
s:string;
Инициализируем переменные:
Код:
begin
s:='';
result:=false;
http:=tidhttp.Create;
post:=tstringlist.Create;
Теперь нам надо заполнить данные для отправки запроса - открываем наше свернутое окно и добавляем все строки в переменную post
try
s:=http.Post('http://d3scene.ru/login.php?do=login',post);
except
end;
if (pos('Добро пожаловать',s)>0) and (pos(nick,s)>0) then
result:=true;
http.free;
post.free;
end;
Вот и все. Теперь достаточно вызвать функцию при нажатии кнопки.
Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
if login('UnDeadRocUser', 'password') then
Showmessage('Мы успешно залогинились')
else
Showmessage('Пароль неверный или ошибка соединения');
end;
Relikt and RazorIII(c)
Последний раз редактировалось TakeThat; 06.07.2010 в 11:42.
Принимаются пожертвования любых размеров в фонд поддержки начинающих программистов
Кошельки: WMZ - Z276844220882; WMR - R231028582939; WMU - U394136909210; ЯД - 410011494605270.
я так понял можно и другие ссайты применить по этому способу ?
обязательно нужна именно этот браузер ? , хром не как .
и последний вопрос программа Delphi xe2 подойдет ?
1.Способ всегда один http. А там все от запросов зависит. На vbulletin просто обычно ничего не меняют.
2. Забудь о tamper data. Редкая гадость. Хотя бы http analyzer. Потом поймешь почему.
Здравствуйте. А как быть, если при передачи запроса используется Cookies.
А именно интересует авторизация в DarkOrbit.
Цитата:
var w := new WebClient();
w.Encoding := System.Text.Encoding.UTF8;
var url := 'http://darkorbit.ru/?locale=ru&aid=3158&aip=';
var data := 'loginForm_default_username=<логин>&loginForm_defa ult_password=<пароль>&loginForm_default_login_subm it=Вход';
w.UploadString(url, data);