(27-05-2018, Saat: 22:54)Paranoyaq Adlı Kullanıcıdan Alıntı:DoLogin('Kullaniciadim', 'sifrem'); memo1.Lines.add(idhttp1.Get('http://www.delphican.com/index.php'));
şeklinde butona atıp memo içerisindeki ziyaretçi yada kullanıcı adımın geçtiği kısımları tarıyorum , olumsuz.
Fonksiyon RESULT içeriğini gözden kaçırmayın.
Mantığı şöyle kurmalısınız.
Memo1.Lines.add( DoLogin('Kullaniciadim', 'sifrem') );
Diğer yandan eğer sitede gezinmeye devam edecekseniz ve bir cookiemanager kullanmayı düşünmüyorsanız, IdHttp'yi fonksiyon içinde Create / Free etmeyecek, dışarı alacaksınız.
Anlatımı güçlendirmek için size bir örnek.
Uses IdHttp, StrUtils;
Var
IdHttp : TIdHttp;
boolLogged : Boolean = False;
function DoLogin(const username, password: string; var Logged:Boolean): string;
var
Request: TStringList;
begin
Result := '';
try
Request := TStringList.Create;
try
Request.Add('action=do_login');
Request.Add('url=http://www.delphican.com/index.php');
Request.Add('quick_login=1');
Request.Add('quick_username='+username);
Request.Add('quick_password='+password);
Request.Add('quick_remember=yes');
Request.Add('submit=Giriş Yap');
if NOT Assigned( IdHttp ) then
begin
IdHTTP := TIdHTTP.Create;
IdHTTP.AllowCookies := True;
IdHTTP.HandleRedirects := True;
IdHTTP.Request.ContentType := 'application/x-www-form-urlencoded';
end;
IdHTTP.Post('http://www.delphican.com/member.php', Request);
Result := IdHTTP.Get('http://www.delphican.com');
// Oturum aktif mi ... kontrolü
Logged := not StrUtils.ContainsStr(Result, 'quick_login');
finally
Request.Free;
end;
except
Result := '';
end;
end;
function UserControlPanel( var Logged: boolean ): String;
begin
if Logged then
begin
Result := IdHttp.Get( 'http://www.delphican.com/usercp.php' );
// Oturum [halen] aktif mi ... kontrolü
Logged := not StrUtils.ContainsStr(Result, 'quick_login');
end;
end;
procedure TForm1.BitBtn1Click(Sender: TObject);
var
strIcerik : String;
begin
if not boolLogged
then DoLogin( 'kullaniciadim', 'sifrem', boolLogged );
strIcerik := UserControlPanel( boolLogged );
if boolLogged
then Memo1.Lines.Add( strIcerik )
else MessageDlg( 'Oturumunuz aktif değidir.', mtError, [mbOk], 0 );
end;
//.......
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
if Assigned(IdHttp)
then FreeAndNil( IdHttp );
end;
Saygılarımla
Muharrem ARMAN

Muharrem ARMAN


