Попробуй таким способом, мне помогло))) PageProfile:=IdHTTP1.Get('http://vkontakte.ru/login.php?email='+URLDecode(loginVKONT.Text)+'&pass='+URLDecode(passwordVKONT.Text));
сорри, функцию забыл) вставь ее в свой проект: Code: function URLDecode(const S: string): string; var i, idx, len, n_coded: Integer; function WebHexToInt(HexChar: Char): Integer; begin if HexChar < '0' then Result := Ord(HexChar) + 256 - Ord('0') else if HexChar <= Chr(Ord('A') - 1) then Result := Ord(HexChar) - Ord('0') else if HexChar <= Chr(Ord('a') - 1) then Result := Ord(HexChar) - Ord('A') + 10 else Result := Ord(HexChar) - Ord('a') + 10; end; begin len := 0; n_coded := 0; for i := 1 to Length(S) do if n_coded >= 1 then begin n_coded := n_coded + 1; if n_coded >= 3 then n_coded := 0; end else begin len := len + 1; if S[i] = '%' then n_coded := 1; end; SetLength(Result, len); idx := 0; n_coded := 0; for i := 1 to Length(S) do if n_coded >= 1 then begin n_coded := n_coded + 1; if n_coded >= 3 then begin Result[idx] := Chr((WebHexToInt(S[i - 1]) * 16 + WebHexToInt(S[i])) mod 256); n_coded := 0; end; end else begin idx := idx + 1; if S[i] = '%' then n_coded := 1; if S[i] = '+' then Result[idx] := ' ' else Result[idx] := S[i]; end; end; // URLDecode
Все равно не работает... Как еще можно написать авторизацию Вконтакте с: "Авторизация удалась" и "Авторизация не удалась"
да и вообще там данные передаются через POST POST /login.php HTTP/1.1 POST /?act=login HTTP/1.1 а потом GET /login.php?m=1&email=assd HTTP/1.1 Возьми снифер, и посмотри, как идут запросы к серверу
Не обязательно. Можно одним запросом, это уже обсуждалось не раз. ТС, напиши пароль, который ты вводишь
Code: procedure TForm1.Button1Click(Sender: TObject); var d:tstringlist; PP,s:string; error:boolean; begin IdHTTP1.AllowCookies:=true; IdHTTP1.HandleRedirects:=false; d:=tstringlist.create; d.Add('email='+Edit1.Text); d.Add('pass='+Edit2.Text); d.Add('expire='); d.Add('vk='); error:=false; try PP:=IdHTTP1.Post('http://login.vk.com/?act=login', d); s:=('s='+Copy(PP, Pos('value', PP)+7, 56)); except error:=true; end; if not(error) then begin d.Clear; d.Add('s='+Copy(PP, Pos('value', PP)+7, 56)); s:=(Copy(PP, Pos('value', PP)+7, 56)); d.Add('op=slogin'); d.Add('redirect=1'); d.Add('expire=0'); d.Add('to='); IdHTTP1.HandleRedirects:=true; try PP:=IdHTTP1.Post('http://vkontakte.ru/login.php', d); ShowMessage('Авторизация прошла успешно.'); except end; end else ShowMessage('Авторизация не удалась!'); d.Free; end; Исходник, если нужен _http://slil.ru/29483336