Post Parameter beim submit einer Form mitgeben
Hallo Delphianer,
Meine TWebBrowser Komponente navigiert eine Webseite an:
Delphi-Quellcode:
und submittet ein Formular:
WebBrowser1.Navigate('http://www.test.de');
Delphi-Quellcode:
Funktioniert prima. Ich nutze zum Überprüfen der Parameter das Mozilla-Addon "UrlParams". Das zeigt in der Sidebar alle POST und GET Parameter an. Beim Submitten meines Zielformulars fiel mir auf, dass ein verstecktes (Java?)Script noch die Mauskoordinaten des grossen Submitbuttons berechnet und als x und y Wert per POST an den Server mitgibt.webbrowser1.oleobject.document.forms.item(0).elements.item('user').value := e_username.text; webbrowser1.oleobject.document.forms.item(0).elements.item('password').value := e_login_passwd.text; webbrowser1.oleobject.document.forms.item(0).submit; D.h. es werden 4 Informationen an den Server übertragen: Username Passwort Mausposition X Mausposition Y Mit meiner o.g. Technick kann ich den Usernamen und das Passwort an den Server übermitteln, allerdings werden die Werte für die Mausposition mit 0 übergeben - logisch da ich ja den direkten submit ausführe. Meine Frage ist: wie kann ich den x und den y Wert ebenfalls an den Server mitübermitteln OHNE die Maus zu benutzen? Einfach die php Variablen in der URL eintragen und die Form Submitten geht nicht, da bekomme ich ebenfalls 0,0 raus :-( Gibts da einen Ansatz den ich verfolgen kann? |
Re: Post Parameter beim submit einer Form mitgeben
Bevor du weiter nach dem versteckten Javascript suchst: http://de.selfhtml.org/html/formular....htm#grafische ;)
Eigentlich müsstest du die Koordinaten einfach mitgeben können :gruebel: Wir das ganze per Get oder per Post übermittelt? |
Re: Post Parameter beim submit einer Form mitgeben
Hallo jfheins,
vielen Dank für den Selfhtml Link :-) Das ganze wird per POST übermittelt. |
Re: Post Parameter beim submit einer Form mitgeben
Delphi-Quellcode:
Mit IdHttp1.Post(LoginURL, data) kann ich Daten per Post senden - aber wie kann ich das live im TWebbrowser verfolgen?
procedure TForm1.Button3Click(Sender: TObject);
var data: TIdMultiPartFormDataStream; begin IdHttp1.IOHandler := IdSSLIOHandlerSocketOpenSSL1; data := TIdMultiPartFormDataStream.Create; data.AddFormField('login', edit4.Text); data.AddFormField('passwd', edit5.Text); memo1.Text := IdHttp1.Post(LoginURL, data); data.Free; end; |
Re: Post Parameter beim submit einer Form mitgeben
Bei Navigate kann man noch weitere Parameter mitgeben:
Delphi-Quellcode:
var
BrowserFlags : olevariant; MyTargetFrameName : olevariant; MyPostaData : olevariant; MyHeaders : olevariant; begin { Flags: Constant Value Meaning NavOpenInNewWindow $01 Open the resource or file in a new window. NavNoHistory $02 Do not add the resource or file to the history list. The new page replaces the current page in the list. NavNoReadFromCache $04 Do not read from the disk cache for this navigation. NavNoWriteToCache $08 Do not write the results of this navigation to the disk cache. NavAllowAutosearch $10 If the navigation fails, the Web browser attempts to navigate common root domains (.com, .org, and so on). If this still fails, the URL is passed to a search engine. } BrowserFlags := $02; MyTargetFrameName := null; MyPostaData := 'MauspositionX=410'; MyHeaders := null; Webbrowser1.Navigate(EdtURL.text, BrowserFlags,MyTargetFrameName,MyPostaData,MyHeaders); |
Re: Post Parameter beim submit einer Form mitgeben
Ich hab eine Testseite hochgeladen:
Post Testseite Auszug des Quellcodes: <?PHP echo" D A T E N A U S W E R T U N G:</p>"; echo" -- G E T</p>"; echo" X: $_GET[x]</p>"; echo" Y: $_GET[y]</p>"; echo" -- P O S T</p>"; echo" X: $_POST[x]</p>"; echo" Y: $_POST[y]</p>"; ?> parametrisierter URL Aufruf mit: http://www.bot-factory.de/tmp/post.php?x=2&y=7 hat natürllich zum Ergebnis, dass x=2 und y=7 ist (GET) Ein Beispielaufruf mit:
Delphi-Quellcode:
bringt keine Post daten zum Vorschein. Hab ich da noch ein Detail vergessen?
BrowserFlags := $02;
MyTargetFrameName := null; MyPostaData := 'x=2'; MyHeaders := null; Webbrowser1.Navigate('http://www.bot-factory.de/tmp/post.php', BrowserFlags,MyTargetFrameName,MyPostaData,MyHeaders); |
Re: Post Parameter beim submit einer Form mitgeben
Zitat:
http://www.delphipraxis.net/internal...t.php?p=695870 (letzter Betrag) Dort steht ja sinngemäß, dass die gefundene Lösung sehr umständlich ist. Versuche dann mal noch das:
Delphi-Quellcode:
function VarByteArrayCreate(const Data; len:Integer):Variant;overload;
var vdata : Pointer; begin if len > 0 then begin Result := VarArrayCreate([0, len-1], varByte); vdata := VarArrayLock(Result); try Move(Data, vdata^, len); finally VarArrayUnlock(Result); end; end else Result := Null; end; function VarByteArrayCreate(const s:string):Variant;overload; begin Result := VarByteArrayCreate(s[1], Length(s)); end; MyPostaData := VarByteArrayCreate('x=2'); |
Re: Post Parameter beim submit einer Form mitgeben
sicher, daß es ohne ' geht? :gruebel:
Zitat:
nja, probier mal print_r($_GET) und schau was überhaupt so alles ankommt. |
Re: Post Parameter beim submit einer Form mitgeben
Guten Morgen!
Ich habe jetzt mehrere Beispiele durchforstet und eure Anregungen mit einfliessen lassen. Ich bin mir auch sicher dass der PHP Quelltext für diesen Test okay ist. Aber es gelingt mir nicht, Post Daten zu übermitteln. Oder ist meine Überprüfungsmethode mit der php Seite nicht repräsentativ? Edit: hab eine Test html davorgeschoben Post Senden Es liegt definitiv an am Delphi Quelltext |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:25 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz