Konuyu Oyla:
  • Derecelendirme: 5/5 - 3 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Web Sitesine Login Olma ve HTML Parse
#11
(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

guplouajuixjzfm15eqb.gif
Cevapla
#12
(28-05-2018, Saat: 19:58)mrmarman Adlı Kullanıcıdan Alıntı:
(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;



Teşekkür ediyorum yardımlar için ayrıca

Oturum Aktif olması kısmında kullanıcı adı ve şifreyi editlere aktararak

var
strIcerik : String;
begin
if not boolLogged
  then DoLogin( edit1.text, edit2.text, boolLogged );
strIcerik := UserControlPanel( boolLogged );
MessageDlg( 'Oturumunuz aktif ', mtConfirmation, [mbOk], 0 );
if boolLogged
  then Memo1.Lines.Add( strIcerik )
  else MessageDlg( 'Oturumunuz aktif değidir.', mtError, [mbOk], 0 );
Cevapla
#13
Emeğinize sağlık fakat bu makalenin görünürlüğünde sorun var sanırım.  Paylaşmış olduğunuz kod yapısında html ifadeler görünüyor. Bilginiz olsun istedim.
Örneğin (function Do<span class="highlight" style)..

Birde konuda Action yerine Rel kullanıldıysa aynı kullanım mümkün mü farklı bir yapımı kullanılıyor. Aşağıdaki yapıda post edeceğim herhangi bir sayfa adresi yok. 
Örnek
<form id="form" method="post" rel="loginme">
Cevapla
#14
(08-01-2019, Saat: 04:05)okoca Adlı Kullanıcıdan Alıntı: chrome opera vs webbrowserda sayafaya sağ tıkla öğeyi denetle ye tıkla, oradan network tabına geç,
geçtiğin tabda preserve log a tıkla (bu işlem sayfa adresi değiştiğinde aşağıdaki listenin silinmemesini sağlayacak),
sonrasında delphican formunda bir sayfaya bir mesaj gir ve cevabı gönderde,
network tabında aşağıda listelenecek olan istekler sunucuya giden istekler olacaktır, 
biraz incelersen kendi yazdığın yorumun hangi adrese hangi parametre ile gittiğinide görebilirsin,
sunucununda ne cevap verdiğini görebilirsin,

Bilgi için teşekkürler, dediğiniz şekilde aderesi yakaladım, fakat daha büyük bir sorun çıktı idhttp.get  ajax ile üretilen bilgileri almıyor. Bir memorystream değişken tanımlayıp çekmeyi denedim sonuç aynı. Örnek sayfada class adı ACT olan div içindeki bilgi  ajax ile 5 saniyede bir yenileniyor. Bunu idhttp get ile almaya kalktığınızda bu bilgi gelmiyor.



oX7apm.png
Cevapla
#15
Çok teşekkür Ederim benimde merak ettiğim bir konu idi , detaylı anlatım ve örnekleme için ayrıca teşekkürler.

(28-05-2018, Saat: 19:58)mrmarman Adlı Kullanıcıdan Alıntı:
(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;



Çok teşekkürler ,
Cevapla
#16
Merhaba. Mobilde siteye indy bileşeni ile https://www.thingspeak.com adresine üyeliğim ile giriş yapmak istiyorum. Deneme yanılma ile yol almaya çalışıyorum. Ilgili site form action kısmından url yi nasil alabilirim? Url yi bulamadim? Webbrowser ile cok kisitlamalar ile karsilastim.Baştan yanlış yol izliyorsam mobilde login için nasil bir yol izlemeliyim? Teşekkürler. 


<form action="/pages/contact_us?method=post" accept-charset="UTF-8" method="post"><input name="utf8" type="hidden" value="&#x2713;" /><input type="hidden" name="authenticity_token" value="pYwLKIf/pURlZm177rOqHX5XGsXTnI+EjTk4ujq7DUMTLFIRYA0k9VxEnGjKHjALs9bHptiE54vVLFMwlEJCDQ==" />
       <input type='text' id='userlogin_js' name='userlogin_js' class='userlogin' />

       <div class="modal-header">
         <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
         <h4 class="modal-title">Contact Us</h4>
       </div>

       <div class="modal-body">
         <div class="form-group">
           <label class="control-label">Email Address</label>
           <div><input type="text" name="email" id="email" class="form-control" /></div>
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  TWebBrowser Lafınızı Dinlesin, HTML 5'ten anlasın uparlayan 14 11.180 18-08-2021, Saat: 20:48
Son Yorum: rahman
  XML Parse ve RSS SimaWB 6 5.964 25-11-2020, Saat: 11:18
Son Yorum: Bay_Y
  Fluent HTML uparlayan 9 8.021 11-06-2019, Saat: 22:57
Son Yorum: ahmetb
  Web Sitesine Login Olma ve HTML Parse - 2 SimaWB 10 9.444 15-02-2019, Saat: 03:02
Son Yorum: BasK
  Tüm Platformlar için (cross-platform) HTML Dosyası Oluşturma TescilsizUzman 0 3.335 21-10-2016, Saat: 11:53
Son Yorum: TescilsizUzman



Konuyu Okuyanlar: 1 Ziyaretçi