
10.04.2010, 15:27
|
|
Постоянный
Регистрация: 20.01.2010
Сообщений: 338
С нами:
8582863
Репутация:
69
|
|
я когда то на delphi писал функцию))) может чем поможет)) тока надо исправить процедуру в idcookiamanager.pas
PHP код:
procedure TVKClass.Login;
var
PageText : TStringList;
PostData : TStringList;
TempStr : string;
I : Integer;
begin
{ Создаем объекты в памяти }
HTTP := TidHTTP.Create(nil);
Cookie := TidCookieManager.Create(HTTP);
PageText := TStringList.Create;
PostData := TStringList.Create;
{ Задаем нужные параметры }
HTTP.Request.UserAgent := 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.1.7) Gecko/20091221 MRA 5.6 (build 03278) Firefox/3.5.7 sputnik unknown';
HTTP.Request.Accept := 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8';
HTTP.Request.AcceptLanguage := 'ru,en-us;q=0.7,en;q=0.3';
HTTP.Request.Connection := 'keep-alive';
HTTP.Request.Referer := 'http://vk.com/login.php';
HTTP.Request.ContentType := 'application/x-www-form-urlencoded; charset=UTF-8';
HTTP.Request.AcceptCharset := 'windows-1251,utf-8;q=0.7,*;q=0.7';
HTTP.CookieManager := Cookie;
HTTP.AllowCookies := True;
HTTP.HandleRedirects := True;
{ 1. Запрос на страницу }
If FServerType = stVK_COM Then
HTTP.Post('http://vk.com/login.php', PostData)
else HTTP.Post('http://vkontakte.ru/login.php', PostData);
{ 2. Формируем запрос }
PostData.Add('act=login');
PostData.Add('email=' + femail);
PostData.Add('pass=' + fpass);
PageText.Text := HTTP.Post('http://login.vk.com/', PostData);
If Pos('error', PageText.Text) <> 0 Then
begin
TriggerLogin('Bad login or password');
end else TriggerLogin('Succes login');
For I := 0 To PageText.Count -1 do
begin
If Pos('id=' + #39 + 's' + #39, PageText[I]) <> 0 Then
begin
TempStr := PageText[I];
TempStr := Copy(TempStr, Pos('value=', TempStr) +7, Length(TempStr));
Delete(TempStr, Pos(#39, TempStr), Length(TempStr));
end;
end;
{ 3. Отсылаем ключ на сервер }
PostData.Clear;
PostData.Add('op=slogin');
PostData.Add('s=' + TempStr);
If FServerType = stVK_COM Then
PageText.Text := HTTP.Post('http://vk.com/login.php', PostData)
else PageText.Text := HTTP.Post('http://vkontakte.ru/login.php', PostData);
PageText.Free;
PostData.Free;
end;
ps
это код из мокго компонента для вк. нужно исправить код немного...
|
|
|