Logowanie na Fotka.pl

0

Witam..
Mam problem odnosnie szukania.. loguje sie poprawnie. a juz wyszukiwanie nie dziala.. wywala mnie do logowania.. czyzby idHTTp nie trzyma sesji?

var
Params  : TStringList;
i: integer;
begin
 WebBrowser.Navigate('about:blank');
  Params := TStringList.Create;
  Params.Values['back_url'] :='/';
  Params.Values['login']   :='';
  Params.Values['pass']    :='';
  //Params.Values['save']    :='on';
  IdHTTP1.Response.ContentType:='application/x-www-form-urlencoded';
  IdHTTP1.request.useragent := 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)';

  WebBrowser.silent:=true;

    // logowanie..
    AdvMemo1.Lines.Text:=IdHTTP1.POST('http://www.fotka.pl/login.php?form_login=1',params);
   // WriteText(WebBrowser,AdvMemo1.Lines.Text);
    //IdHTTP1.CookieManager.CookieCollection.Clear;
     add(IntToStr(IdHTTP1.ResponseCode));

 for i:=0 to  IdHTTP1.CookieManager.CookieCollection.Count-1
 do begin
   memo1.Lines.Add(IdHTTP1.CookieManager.CookieCollection.Items[i].CookieText) ;
 end;
// szukanie
Params.Clear;

Params.Values['e'] :='s';
Params.Values['f[km]'] :='20';
Params.Values['f[miejscowosc]'] :='Kielce';
Params.Values['f[miejscowosc_id]'] :='9850';
Params.Values['f[plec]'] :='k';
Params.Values['f[wiek_do]'] :='22';
Params.Values['f[wiek_od]'] :='18';

 AdvMemo1.Lines.Text:=IdHTTP1.POST('http://www.fotka.pl/szukaj.php',params);
WriteText(WebBrowser,AdvMemo1.Lines.Text);
//IdHTTP1.CookieManager.CookieCollection.Clear;
add(IntToStr(IdHTTP1.ResponseCode));

end;
0

Nie wiem co porobiłeś ale u mnie Indy10, Delphi 7, Win XP zwraca stronę z wynikami wyszukiwania. Na formie Memo1, Button1,IdHTTP1, IdCookieMenager1 (oczywiście przypisany do IdHTTP1)
Moj kod to skrócona wersja Twojego i działa:

procedure TForm1.Button1Click(Sender: TObject);
var
  Params  : TStringList;
begin
  Params := TStringList.Create;
  try
  Params.Values['back_url'] :='/';
  Params.Values['login']   :='Login';
  Params.Values['pass']    :='Haslo';

  IdHTTP1.Response.ContentType:='application/x-www-form-urlencoded';
  IdHTTP1.request.useragent := 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)';

  Memo1.Lines.Text:=IdHTTP1.POST('http://www.fotka.pl/login.php?form_login=1',params);

  Params.Clear;
  Params.Values['e'] :='s';
  Params.Values['f[km]'] :='20';
  Params.Values['f[miejscowosc]'] :='Kielce';
  Params.Values['f[miejscowosc_id]'] :='9850';
  Params.Values['f[plec]'] :='k';
  Params.Values['f[wiek_do]'] :='22';
  Params.Values['f[wiek_od]'] :='18';

  Memo1.Lines.Text:=IdHTTP1.POST('http://www.fotka.pl/szukaj.php',params);
  finally
  Params.Free;
  end;
end;
0

Mam indy 9 i kurde wlasnie mnie wyrzuca do logowania..
Mecze instalajce indy 10 eh.. katorga.. i sprobuje..

0

b>@kAzek</b wielkie dzieki.. zmiana INDY pomogla..
Temat do zamkniecia...
Pozdrawiam.

0

witam serdecznie chcę zalogować się na fotkę i raporty poczytać i glosy pododawać pozdrawiam z góry dziekóje

0

No i w czym problem? Przeanalizuj debuggerem HTTP albo jakimś snifferem na przykład WireShark w jaki sposób dane są wysyłane metodą POST przez przeglądarkę internetową. A następnie zrób to samo przy użyciu Indy lub Synapse.

0

na dodatek fotka.pl udostępnia przyjazne API. Po co męczyć się ze stringami, ciasteczkami, sesjami i innymi paściami po to by coś odczytać ze swojego konta, jak można to zrobić za pomocą API

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0