AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Post Parameter beim submit einer Form mitgeben
Thema durchsuchen
Ansicht
Themen-Optionen

Post Parameter beim submit einer Form mitgeben

Ein Thema von Ajintaro · begonnen am 1. Apr 2009 · letzter Beitrag vom 17. Jun 2009
Antwort Antwort
Benutzerbild von Ajintaro
Ajintaro

Registriert seit: 20. Okt 2004
Ort: Sankt Augustin
138 Beiträge
 
Delphi XE6 Starter
 
#1

Post Parameter beim submit einer Form mitgeben

  Alt 1. Apr 2009, 17:36
Hallo Delphianer,

Meine TWebBrowser Komponente navigiert eine Webseite an:

WebBrowser1.Navigate('http://www.test.de'); und submittet ein Formular:

Delphi-Quellcode:
  
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;
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.
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?
Jaimy
DAoC 2.0 -> Camelot Unchained !
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#2

Re: Post Parameter beim submit einer Form mitgeben

  Alt 1. Apr 2009, 17:48
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

Wir das ganze per Get oder per Post übermittelt?
  Mit Zitat antworten Zitat
Benutzerbild von Ajintaro
Ajintaro

Registriert seit: 20. Okt 2004
Ort: Sankt Augustin
138 Beiträge
 
Delphi XE6 Starter
 
#3

Re: Post Parameter beim submit einer Form mitgeben

  Alt 1. Apr 2009, 17:59
Hallo jfheins,

vielen Dank für den Selfhtml Link Das ganze wird per POST übermittelt.
Jaimy
DAoC 2.0 -> Camelot Unchained !
  Mit Zitat antworten Zitat
Ajin

Registriert seit: 23. Feb 2006
Ort: Mons
252 Beiträge
 
Delphi 2010 Professional
 
#4

Re: Post Parameter beim submit einer Form mitgeben

  Alt 16. Jun 2009, 15:00
Delphi-Quellcode:
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;
Mit IdHttp1.Post(LoginURL, data) kann ich Daten per Post senden - aber wie kann ich das live im TWebbrowser verfolgen?
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#5

Re: Post Parameter beim submit einer Form mitgeben

  Alt 16. Jun 2009, 15:12
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);
Andreas
  Mit Zitat antworten Zitat
Ajin

Registriert seit: 23. Feb 2006
Ort: Mons
252 Beiträge
 
Delphi 2010 Professional
 
#6

Re: Post Parameter beim submit einer Form mitgeben

  Alt 16. Jun 2009, 15:56
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:
  BrowserFlags := $02;
  MyTargetFrameName := null;
  MyPostaData := 'x=2';
  MyHeaders := null;
  Webbrowser1.Navigate('http://www.bot-factory.de/tmp/post.php', BrowserFlags,MyTargetFrameName,MyPostaData,MyHeaders);
bringt keine Post daten zum Vorschein. Hab ich da noch ein Detail vergessen?
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#7

Re: Post Parameter beim submit einer Form mitgeben

  Alt 16. Jun 2009, 16:01
Zitat von Ajin:
bringt keine Post daten zum Vorschein. Hab ich da noch ein Detail vergessen?
Ja, bzw. Microsoft erwartet da einen anderen Datentyp (ein VarByte-Array):
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');
Andreas
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.152 Beiträge
 
Delphi 12 Athens
 
#8

Re: Post Parameter beim submit einer Form mitgeben

  Alt 16. Jun 2009, 16:03
sicher, daß es ohne ' geht?

Zitat:
$_GET['x']

nja, probier mal print_r($_GET) und schau was überhaupt so alles ankommt.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Ajin

Registriert seit: 23. Feb 2006
Ort: Mons
252 Beiträge
 
Delphi 2010 Professional
 
#9

Re: Post Parameter beim submit einer Form mitgeben

  Alt 17. Jun 2009, 08:56
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
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:55 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