Webbrowser PHP

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Kullanıcı avatarı
CiTiZEN
Üye
Mesajlar: 1163
Kayıt: 06 Oca 2008 04:15

Webbrowser PHP

Mesaj gönderen CiTiZEN »

selamlar arkadaşlar, elimde bir php sayfası var bu sayfaya webbrowser ile bilgi girişinde bulunuyorum bazı bileşenler bileşen ismine sahip onlara webbrowser üzerinden giriş yapabiliyorum ama esas tıklamam gereken butonların (veya buton değil resim vs. de olabilir) isimleri yok sanırım bir script benzeri olaya sahipler bu script i nasıl harekete geçiririm java script çalıştırmak için uygulanan kodları uyguladığımda bulunamadı hatası verdi başka bir yolu varmıdır?
UWESIS CORPORATION
mkysoft
Kıdemli Üye
Mesajlar: 3110
Kayıt: 26 Ağu 2003 12:35
Konum: Berlin
İletişim:

Re: Webbrowser PHP

Mesaj gönderen mkysoft »

her ne kadar script olsada sayfa GET yada POST komutunu kullanarak veri gönderiyordur. Bu nedenle direk olarak sayfanın POST yada GET yaptığı adresi öğrenip indyHTTP ile direk POST yada GET yaparak daha hızlı bir veri girişi yapabilirsiniz.

Kod: Tümünü seç

var
  GidenData, GelenString: TStringList;
  GelenData: TStringStream;
  text: string;
begin
    GidenData := TStringList.Create;
    GelenData := TStringStream.Create('');
    GidenData.Values['name'] := 'testtest';
    GidenData.Values['homepage'] := 'http://abc.com';
    GidenData.Values['comment'] := '2Teswwtin testi2';
    GidenData.Values['security'] := '';
    GidenData.Values['passwd'] := '1111231543';
    text := IdHttp1.Get('http://sayfaadresi.com/form.php'); //eğer session gibi birşey açıyorsa önce sayfayı get ile çağırmak gerekebilir.
    IdHttp1.Post('http://sayfaadresi.com/ekle.php' , GidenData);
end;
Kullanıcı avatarı
CiTiZEN
Üye
Mesajlar: 1163
Kayıt: 06 Oca 2008 04:15

Re: Webbrowser PHP

Mesaj gönderen CiTiZEN »

hocam teşekkür ederim ancak bu işlemi webbrowser ile yapmam şart bu bilgiler parasal içerige sahip yani eft gibi felan işlemler yapmakta, kullanıcı programdan miktarı yazıyor gönder diyince eft vs. işlem yapılıyor ama kontrol etmesi gerektiğinde webbrowseri açıp görmesi gerekiyor kontrol için webbrowser seçtim.Login işlemlerinde sorun yok ama birkaç işlem butonu var kaynak koduna baktığımda altında isim göremedim bu yüzden takıldım kaldım.
UWESIS CORPORATION
Kullanıcı avatarı
CiTiZEN
Üye
Mesajlar: 1163
Kayıt: 06 Oca 2008 04:15

Re: Webbrowser PHP

Mesaj gönderen CiTiZEN »

işin kötüsü bu kısmını bugün teslim etmem gerek napacam bilemedim şimdi
UWESIS CORPORATION
mkysoft
Kıdemli Üye
Mesajlar: 3110
Kayıt: 26 Ağu 2003 12:35
Konum: Berlin
İletişim:

Re: Webbrowser PHP

Mesaj gönderen mkysoft »

Bununla ilgili yazılar görmüştüm, yapılabilisi bir şey. Düğme yada resim her neyse üzerinde bir kod olamalı. Resimlerde düğme olacak kullanılabilir. Sayfanın kaynak kodlarını bakarak onclick olayı varmı nesnede bir bakın.
Kullanıcı avatarı
CiTiZEN
Üye
Mesajlar: 1163
Kayıt: 06 Oca 2008 04:15

Re: Webbrowser PHP

Mesaj gönderen CiTiZEN »

evet onclick olayı var ama çalıştırmaya kalktığımda hata veriyor (nesne bulunamadı veya nesne bekleniyor hatası vs.)
UWESIS CORPORATION
Kullanıcı avatarı
CiTiZEN
Üye
Mesajlar: 1163
Kayıt: 06 Oca 2008 04:15

Re: Webbrowser PHP

Mesaj gönderen CiTiZEN »

arkadaşlar kimseler daha önce yapmadımı böyle şeyler javascript çalıştırma adına bulduğum kodları denedim ama hatalar veriyor başka bir yolu yok mu bu olayın?
UWESIS CORPORATION
mkysoft
Kıdemli Üye
Mesajlar: 3110
Kayıt: 26 Ağu 2003 12:35
Konum: Berlin
İletişim:

Re: Webbrowser PHP

Mesaj gönderen mkysoft »

nesne isimlerini yanlış yazmışsınız, bu hata ona delalet ediyor.
Kullanıcı avatarı
CiTiZEN
Üye
Mesajlar: 1163
Kayıt: 06 Oca 2008 04:15

Re: Webbrowser PHP

Mesaj gönderen CiTiZEN »

Hata:Tanımsız ?
Kodlar (daha öncedende denemiştim sonuç aynıydı şimdi denedim yine aynı)

Kod: Tümünü seç

procedure CallFoo(S:String;I:Integer);
  { Calls JavaScript foo() function }
var
  Doc: IHTMLDocument2;      // current HTML document
  HTMLWindow: IHTMLWindow2; // parent window of current HTML document
  JSFn: string;             // stores JavaScipt function call
begin
  // Get reference to current document
  Doc :=WebBrowser1.Document as IHTMLDocument2;
  if not Assigned(Doc) then
    Exit;
  // Get parent window of current document
  HTMLWindow := Doc.parentWindow;
  if not Assigned(HTMLWindow) then
    Exit;
  // Run JavaScript
  try
    JSFn := Format('JAVA SCRIPT OLDUGUNU ZANNETTIGIM KOD Örneğin:RunSc', [S, I]);  // build function call
    HTMLWindow.execScript(JSFn, 'JavaScript'); // execute function
  except
    // handle exception in case JavaScript fails to run
  end;
end;

Şu şekilde kullandım:
 CallFoo(WebBrowser1.OleObject.document.body.innerhtml,1); //Bu Kısımda "S" ve "I" değişkenlerine hangi değerleri neye dayanarak vereceğimi çözemedim
UWESIS CORPORATION
Kullanıcı avatarı
CiTiZEN
Üye
Mesajlar: 1163
Kayıt: 06 Oca 2008 04:15

Re: Webbrowser PHP

Mesaj gönderen CiTiZEN »

Şu şekilde kullandım:
CallFoo(WebBrowser1.OleObject.document.body.innerhtml,1); //Bu Kısımda "S" ve "I" değişkenlerine hangi değerleri neye dayanarak vereceğimi çözemedim
UWESIS CORPORATION
Kullanıcı avatarı
Battosai
Üye
Mesajlar: 1316
Kayıt: 01 Eki 2007 12:02
Konum: Ankara

Re: Webbrowser PHP

Mesaj gönderen Battosai »

"S" yerine javascript kodunu yazacaksın I integer tanımlanmış o da muhtemelen id değeridir. html nesnesine bir id değer atayarak deneyebilirsin. <buton id"=2"><buton> gibi...denemek lazım...
Kullanıcı avatarı
CiTiZEN
Üye
Mesajlar: 1163
Kayıt: 06 Oca 2008 04:15

Re: Webbrowser PHP

Mesaj gönderen CiTiZEN »

malesef olmuyor, kodlar: PHP nin içindeki onclick olayı:

onclick="operator('RUNSC',this);">

Kod: Tümünü seç

procedure CallFoo(S:String;I:Integer);
  { Calls JavaScript foo() function }
var
  Doc: IHTMLDocument2;      // current HTML document
  HTMLWindow: IHTMLWindow2; // parent window of current HTML document
  JSFn: string;             // stores JavaScipt function call
begin
  // Get reference to current document
  Doc :=WebBrowser1.Document as IHTMLDocument2;
  if not Assigned(Doc) then
    Exit;
  // Get parent window of current document
  HTMLWindow := Doc.parentWindow;
  if not Assigned(HTMLWindow) then
    Exit;
  // Run JavaScript
  try
    JSFn := Format(????? Buraya yerleşecek bilgi ne?, [S, I]);  // build function call
    HTMLWindow.execScript(JSFn, 'JavaScript'); // execute function
  except
    // handle exception in case JavaScript fails to run
  end;
end;
JSFn := Format(????? Buraya yerleşecek bilgi ne?, [S, I]);
CallFoo('Buraya yerleşecek bilgi ne',0); bu bir HTML değil PHP Dosyası bileşenlerde herhangi bir id yok..


Saçma sapan birsürü bilgi yerleştirdim hiçbirisi çalışmadı.Buralara ne yerleşeceği veya bu kodun yada herhangi başka bir kodun benim problemime nasıl çare olacağını bilen yokmu arkadaşlar?
UWESIS CORPORATION
Kullanıcı avatarı
CiTiZEN
Üye
Mesajlar: 1163
Kayıt: 06 Oca 2008 04:15

Re: Webbrowser PHP

Mesaj gönderen CiTiZEN »

kimse daha önce script vb çalıştırmadı mı yada böyle bir olay yapan yok mu??
UWESIS CORPORATION
mkysoft
Kıdemli Üye
Mesajlar: 3110
Kayıt: 26 Ağu 2003 12:35
Konum: Berlin
İletişim:

Re: Webbrowser PHP

Mesaj gönderen mkysoft »

çağırdığı fonskiyon neler yapıyor baktınız? belki oradan daha kolay çözersiniz.
Kullanıcı avatarı
CiTiZEN
Üye
Mesajlar: 1163
Kayıt: 06 Oca 2008 04:15

Re: Webbrowser PHP

Mesaj gönderen CiTiZEN »

fonksiyon şu şekilde fonksiyon üzerinde iken firefox da seçimin kaynak kodunu göster dediğimde şu şekilde görüyorum:

Kod: Tümünü seç

operator('AC',this);  //aç yazdığım kısım bi kaç değişik içeriğe sahip AC1 AC2 vs.
geçenlerde @mrarman ın yazdığı bi kodu buldum denedim yukardaki örnek üzerinden devam edersem AC tanımsız diyor o kodda aşağıda:

Kod: Tümünü seç

(WebBrowser1.Document as IHTMLDocument2).parentWindow.execScript( 'operator2(AC),this;', 'JavaScript');
yanlış nerde bi anlasam
UWESIS CORPORATION
Cevapla