AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Indy Login+Cookies

Ein Thema von -187- · begonnen am 26. Apr 2011 · letzter Beitrag vom 28. Apr 2011
Antwort Antwort
viper3001

Registriert seit: 24. Apr 2011
7 Beiträge
 
#1

AW: Indy Login+Cookies

  Alt 26. Apr 2011, 13:21
Also ich hatte mal so ein ähnliches Problem.
Versuch mal Folgendes: Die seite zuerst mit get aufrufen. Da schau dir mal das RecvPacket an. Bei dir stand genau drin Set-Cookie: PHPSESSID=ca753b5f460588c3e9ac1174beae51b0; path=/

->
Code:
temp_sh:='PHPSESSID=ca753b5f460588c3e9ac1174beae51b0';
HTTP.AllowCookies:=true;
HTTP.Cookiemanager.addCookie(temp_sh,loginURL);
Hoffe es hilft evtl.

MfG

Geändert von viper3001 (26. Apr 2011 um 13:27 Uhr)
  Mit Zitat antworten Zitat
-187-

Registriert seit: 24. Sep 2005
483 Beiträge
 
Delphi 2010 Architect
 
#2

AW: Indy Login+Cookies

  Alt 26. Apr 2011, 14:17
Code:
temp_sh:='PHPSESSID=ca753b5f460588c3e9ac1174beae51b0';
HTTP.AllowCookies:=true;
HTTP.Cookiemanager.addCookie(temp_sh,loginURL);
Mein IdCookieManager kennt kein AddCookie sondern nur AddCookies. Da ist aber kein String erlaubt:
IdCookieManager1.AddCookies(Cookie,'domain.com');
E2010 Inkompatible Typen: 'TIdCookieManager' und 'string'

Edit, ok so funktioniert das:
Code:
      cookieURL:=TIdURI.Create('http://www.domain.com/');
      HTTP.CookieManager.AddServerCookie(Cookie,cookieURL);
Melde mich gleich wieder obs mich weiter bringt

Edit, Nein..hat mich noch nicht weiter gebracht :/

Geändert von -187- (26. Apr 2011 um 14:34 Uhr)
  Mit Zitat antworten Zitat
viper3001

Registriert seit: 24. Apr 2011
7 Beiträge
 
#3

AW: Indy Login+Cookies

  Alt 26. Apr 2011, 14:36
ich editiere mal kurz meinen quelltext rein mom.

Code:
procedure TForm1.Button1Click(Sender: TObject);
var uri:TidUri;
temp_sh,url:String;
begin
HTTP.CookieManager:=IdCookieManager1;
HTTP.AllowCookies:=true;
HTTP.CookieManager.GenerateCookieList(uri);
HTTP.CookieManager.addCookie(temp_sh,url);
end;
so müsste das normal funktionieren. temp_sh kannste aus dem RecvPacket vom http.get(url) rausfiltern da stand ja schon setCookie: usw...
und die url wird halt mit eingetragen. Danach kannste dann http.post(); mit den daten machen.

Achja benutzte indy10 kA ob das da nen unterschied macht.

MfG

Geändert von viper3001 (26. Apr 2011 um 14:43 Uhr)
  Mit Zitat antworten Zitat
-187-

Registriert seit: 24. Sep 2005
483 Beiträge
 
Delphi 2010 Architect
 
#4

AW: Indy Login+Cookies

  Alt 26. Apr 2011, 14:48
Hmm ich benutzte auch Indy 10 (10.5.7) und da gibt es kein AddCookie()...

Du hast da scheinbar auch was anderes gemacht. Ich möchte zuerst den Login posten und dann die HTML Seite runterladen.

1. Log-In Paramter senden: HTTP.Post('http://www.my-domain.com/login.php',lParams);
2. "Logged In" HTML Seite runterladen: ResponseCode.Text:=HTTP.Get('http://www.my-domain.com/');


Delphi-Quellcode:
begin
  HTTP:=TIdHTTP.Create(nil);
  HTTP.AllowCookies:=True;
  HTTP.CookieManager:=IdCookieManager1;
  lParams:=TStringList.Create;
  ResponseCode:=TStringList.Create;
  try
    try
      lParams.Values['username']:='Username';
      lParams.Values['password']:='Password';
      lParams.Values['submit']:='Login';
      HTTP.Post('http://www.my-domain.com/login.php',lParams);

      Cookie:=HTTP.Response.RawHeaders.Values['Set-Cookie'];
      Cookie:=Copy(Cookie,1,Pos(';',Cookie)-1);
      cookieURL:=TIdURI.Create('www.my-domain.com');
      HTTP.CookieManager.AddServerCookie(Cookie,cookieURL);

      ResponseCode.Text:=HTTP.Get('http://www.my-domain.com/');
      Memo1.Text:=ResponseCode.Text;
    except
      on Exception do
        ShowMessage('Fehler..');
    end;
//Edit, macht auch eigentlich kein Sinn den Cookie nochmals in den Manager einzufügen. Die Ausgabe hat gezeigt das der Cookie bereits vorhanden ist.

Geändert von -187- (26. Apr 2011 um 15:09 Uhr)
  Mit Zitat antworten Zitat
viper3001

Registriert seit: 24. Apr 2011
7 Beiträge
 
#5

AW: Indy Login+Cookies

  Alt 26. Apr 2011, 15:18
hmm schade dann weiß ich momentan auch nicht weiter sry =) müsste es evtl direkt an der page noch probieren sonst kA.
  Mit Zitat antworten Zitat
Benutzerbild von geskill
geskill

Registriert seit: 17. Feb 2007
Ort: NRW
420 Beiträge
 
Delphi 2010 Professional
 
#6

AW: Indy Login+Cookies

  Alt 26. Apr 2011, 19:24
Huhu,
die Cookies wurden von einigen Wochen komplett überarbeitet/vereinfacht und sind nun viel alltagstauglicher, deswegen empfehle ich dir erstmal dringend ein Indy Update.

Dateien:
http://indy.fulgan.com/ZIP/

Anleitung (thx @ Apfelteig):
http://www.herrotto.de/delphiindy/

Grüße

PS: Mit WireShark kannst du prima deinen kompletten Datenverkehr überwachen, hat mir schon unzählige male geholfen den Fehler zu finden.

PPS: Für die Parameterliste empfehle ich dir TStringStream oder TIdMultiPartFormDataStream

PPPS: Wenn du eine Abfrage sendest nimm bitte immer TStringStream um an die Antwort zu kommen á la:
Delphi-Quellcode:
ReplyData := TStringStream.Create('', CP_UTF8); // wenn Webseite in utf-8 kodiert ist
try
  Get('http://www.deinewebseite.com/', ReplyData);
finally
  ReplyData.Free;
end;
Weil Indy wandelt, wenn du dort String's benutzt gzip kodierte Daten nicht automatisch um und bei normalen String's und utf-8 kodierten Seiten kommen u.a. die Umlaute falsch rüber.
Sebastian

Geändert von geskill (26. Apr 2011 um 19:37 Uhr)
  Mit Zitat antworten Zitat
-187-

Registriert seit: 24. Sep 2005
483 Beiträge
 
Delphi 2010 Architect
 
#7

AW: Indy Login+Cookies

  Alt 26. Apr 2011, 19:45
Hey! Danke für deine Tipps!

Zurzeit teste ich Delphi XE (Profil noch nicht updated) -> Welches Package ist das = ...150 oder ...160 ? (Delphi 2010 ist ...140)

Greetings
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:21 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz