Entwickler-Ecke

Internet / Netzwerk - indy problem (cookiemanager)


Nano-Ware - So 23.01.11 16:08
Titel: indy problem (cookiemanager)
hey

ich habe delphi 2010 bei dem Indy schon vorinstalliert war. Ich habe nun ein Problem.. Ich habe nur die "NewCookie" Procedure erstellt (über Ereignisse im Designer)


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
procedure TForm1.IdCookieManager1NewCookie(ASender: TObject;
  ACookie: TIdCookieRFC2109; var VAccept: Boolean);
begin

ShowMessage('');

end;

uses ..


Delphi-Quelltext
1:
2:
3:
4:
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, IdCookieManager, IdIntercept, IdLogBase, IdLogEvent, IdBaseComponent,
  IdComponent, IdTCPConnection, IdTCPClient, IdHTTP, StdCtrls, ExtCtrls, StrUtils;



Delphi-Quelltext
1:
2:
procedure IdCookieManager1NewCookie(ASender: TObject;
      ACookie: TIdCookieRFC2109; var VAccept: Boolean);


Das erzeugt einen Fehler weil "TIdCookieRFC2109" nicht definiert ist oder so ähnlich.. ich hab leider keine Ahnung was zu tun ist.. normalerweise hätte Delphi TIdCookieRFC2109 ja einfach selbst hinzufügen müssen

Danke


jaenicke - So 23.01.11 16:12

Delphi fügt nur die Units hinzu, die direkt für die Komponente notwendig sind.

Aber eine Suche bei Google, erstes Ergebnis anklicken:
Zitat:
Unit: IdCookie
:roll:


Nano-Ware - So 23.01.11 16:15

Ich bin auf einen Quellcode gestoßen.. Da stand das TIdCookieRFC2109 = class(TIdNetscapeCookie) also hab ich einfach mal gedacht ich füg NetscapeCookie zu uses hinzu .. geht leider nicht. Kann nicht aufgelöst werden und so

danke schonmal

---Moderiert von user profile iconNarses: Beiträge zusammengefasst---

Hat sich erledigt sry (:

es gibt doch noch ein Problem

mein Code :


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, IdCookieManager, IdIntercept, IdLogBase, IdLogEvent, IdBaseComponent,
  IdComponent, IdTCPConnection, IdTCPClient, IdHTTP, StdCtrls, ExtCtrls, StrUtils, IdCookie;

type
  TForm1 = class(TForm)
    memlog: TMemo;
    edit_loginname: TEdit;
    edit_password: TEdit;
    btn_start: TButton;
    HTTP: TIdHTTP;
    LogEvent: TIdLogEvent;
    IdCookieManager1: TIdCookieManager;
    Button1: TButton;
    Button2: TButton;
    procedure btn_startClick(Sender: TObject);
    procedure IdCookieManager1NewCookie(ASender: TObject;
      ACookie: TIdCookieRFC2109; var VAccept: Boolean);
    procedure logout(Sender: TObject);
    procedure redirect(Sender: TObject; var dest: string;
      var NumRedirect: Integer; var Handled: Boolean; var VMethod: string);
    procedure Button2Click(Sender: TObject);

      var
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.btn_startClick(Sender: TObject);
var
  sHTMLCode: String;
  iPos1, iPos2: Integer;
  sFormKey, sIV, sCheckCode: String;
  slParams: TStringList;
begin
  slParams :=TStringList.Create;
  sHTMLCode :=HTTP.Get('http://www.schuelervz.net/');
  iPos1 :=Pos('name="formkey" value="', sHTMLCode)+22;
  iPos2 :=PosEx('"', sHTMLCode, iPos1);
  sFormKey :=Copy(sHTMLCode, iPos1, iPos2-iPos1);
  iPos1 :=PosEx('name="iv" value="', sHTMLCode, iPos2)+17;
  iPos2 :=PosEx('"', sHTMLCode, iPos1);
  sIV :=Copy(sHTMLCode, iPos1, iPos2-iPos1);
  iPos1 :=PosEx('name="checkcode" value="', sHTMLCode, iPos2)+24;
  iPos2 :=PosEx('"', sHTMLCode, iPos1);
  sCheckCode :=Copy(sHTMLCode, iPos1, iPos2-iPos1);
  slParams.Add('email='+edit_loginname.Text);
  slParams.Add('password='+edit_Password.Text);
  slParams.Add('login=Einloggen');
  slParams.Add('jsEnabled=true');
  slParams.Add('formkey='+sFormKey);
  slParams.Add('iv='+sIV);
  slParams.Add('checkcode='+sCheckCode);
  HTTP.Post('http://secure.schuelervz.net/Login', slParams);
  slParams.Free;
end;





procedure TForm1.Button2Click(Sender: TObject);
var

  sTemp : String ;

begin

  memLog.Text := '';
  sTemp := HTTP.Get('http://schuelervz.net/home');
  memlog.Text := sTemp;
  if Pos('Hey Der Tobi', sTemp) <> 0 then ShowMessage('Derzeit eingeloggt');



end;

procedure TForm1.IdCookieManager1NewCookie(ASender: TObject;
  ACookie: TIdCookieRFC2109; var VAccept: Boolean);
begin

  if (ACookie.Path = ''then ACookie.Path :='/';
  memLog.Lines.Add('New Cookie:');
  memLog.Lines.Add('  Comment: '+ACookie.Comment);
  memLog.Lines.Add('  Version: '+ IntToStr(ACookie.Version));
  memLog.Lines.Add('  CookieText: '+ACookie.CookieText);
  memLog.Lines.Add('  ServerCookie: '+ACookie.ServerCookie);
  memLog.Lines.Add('  ClientCookie: '+ACookie.ClientCookie);
  memLog.Lines.Add('  Domain: '+ACookie.Domain);
  memLog.Lines.Add('  Expires: '+ACookie.Expires);
  memLog.Lines.Add('  CookieName: '+ACookie.CookieName);
  memLog.Lines.Add('  Path: '+ACookie.Path);
  memLog.Lines.Add('  Value: '+ACookie.Value);
  memLog.Lines.Add('  DisplayName: '+ACookie.DisplayName);
  memLog.Lines.Add('');

end;

procedure TForm1.logout(Sender: TObject);
begin

HTTP.Get('http://www.schuelervz.net/Logout');

end;

procedure TForm1.redirect(Sender: TObject; var dest: string;
  var NumRedirect: Integer; var Handled: Boolean; var VMethod: string);
begin


  memLog.Lines.Add('Redirect:');
  memLog.Lines.Add('  Dest: '+dest);
  memLog.Lines.Add('  NumRedirect: '+IntToStr(NumRedirect));
  memLog.Lines.Add('  Handled: '+IntToStr(Integer(Handled)));
  memLog.Lines.Add('  Method: '+IntToStr(Integer(VMethod)));
  memLog.Lines.Add('');

end;

end.



Er loggt sich bei SchülerVZ ein. Das ging auch die ganze zeit doch plötzloch kommt ein 500 internal Server Error ...


jaenicke - So 23.01.11 17:22

Vielleicht haben die gemerkt, dass du dich automatisch einloggst und haben deine IP / Login geblockt. Oder du schickst etwas Falsches, weil am Server etwas verändert wurde. :nixweiss: