AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Html-Forms mit Indy
Thema durchsuchen
Ansicht
Themen-Optionen

Html-Forms mit Indy

Ein Thema von nobody0126 · begonnen am 29. Sep 2007 · letzter Beitrag vom 6. Okt 2007
Antwort Antwort
nobody0126
(Gast)

n/a Beiträge
 
#1

Html-Forms mit Indy

  Alt 29. Sep 2007, 15:56
hallo zusammen,
hab eine frage zu der indy komponente, lässt sich mit Indy eine mit namen bekannte Html Form ausfüllen und submitten?
zurzeit erledige ich das noch mit der TWebBrowser Komponente, da diese aber an den MS internet Explorer gebunden ist und
das genannte ausfüllen der Form nur ab iexplorer 7 funktioniert, würde ich gerne alles über Indy laufen lassen um
unabhängig von der Version des Betriebssystems arbeiten zu können.
gruß
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Html-Forms mit Indy

  Alt 29. Sep 2007, 16:06
Hallo,

ja, das geht mit TIdHTTP. Ich vermute, die Daten werden mittels "Post" übermittelt.

Delphi-Quellcode:
var
  SL: TStringList;
begin
  SL := TStringList.Create;
  try
    SL.Add('name=dein_nickname');
    SL.Add('password=dein_passwort');
    // ...
    IdHTTP1.Post('http://www...', SL);
  finally
    FreeAndNil(SL);
  end;
end;
Wobei "name" und "password" die Namen deiner Formularfelder darstellen. Du musst auch nicht unbedingt eine TStringList nutzen.
Über die Suche wärst du übrigens fündig geworden.
  Mit Zitat antworten Zitat
The Lord

Registriert seit: 19. Sep 2005
Ort: Dortmund
125 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: Html-Forms mit Indy

  Alt 30. Sep 2007, 22:55
Hi ich habe auch mal eine Frage zu der POST Funktion.

Ich habe mir ein kleines Script erstellt, um eine Mail mit Hilfe von PHP eine Mail zu senden. Ich habe es nur zum testen erstellt und es steckt kein weiterer Sinn dahinter, als dass ich daran üben möchte.

Form

Code:
<form method="post" action="mail.php">
Ihr Name: <input type="text" name="name">


Ihre Nachricht: <textarea name="nachricht"></textarea>


<input type="submit" name="Button" value="Abschicken">
</form>
Jetzt verwende ich den oben genannten Code mit einer kleinen Änderung:
Delphi-Quellcode:
var
  SL: TStringList;
begin
  SL := TStringList.Create;
  try
    SL.Add('name=dein_nickname');
    SL.Add('password=dein_passwort');
    SL.Add('Button=Abschicken');
    // ...
    IdHTTP1.Post('http://www.nieronator.de/form/formular.php', SL);
  finally
    FreeAndNil(SL);
  end;
end;
Jedoch funktioniert das senden nicht. Wird der Submit-Button etwa nicht "gedrückt" oder muss das PHP Script auf der gleich Seite liegen, bzw. müssen die Variablen an das PHP gesendet werden, welches sich auf einer anderen Seite befindet? hier

Ich freue mich über jede Hilfe
Gruß Alex
Alexander
Dunkel die andere Seite ist...
Klappe Yoda und iss deinen Toast!
  Mit Zitat antworten Zitat
LAWn-M0W3R

Registriert seit: 31. Jul 2006
Ort: Potsdam / Berlin
38 Beiträge
 
#4

Re: Html-Forms mit Indy

  Alt 1. Okt 2007, 06:00
Wenn du den Namen der Seite kennst, kannst du ja einfach per ShellExecute deine Variablen weitergeben!
Das müsste in etwa so funktionieren:
Delphi-Quellcode:
uses ...ShellAPI;
-----------------------
...
ShellExecute(Application.Handle,'open','http://www.nieronator.de/form/mail.php?name=value&nachricht=value',nil,nil,SW_NORMAL);
...
Dürfte eigentlich nicht anders funktionieren als deine Indy-Komponente.
Haha, ich hab mir gerade nochmal deine Seite angesehen und festgestellt, dass du deine PHP-Variablen wahrscheinlich gar nicht richtig ausliest!
Aus Sicherheitsgründen kannst du auf Post-Variablen nicht mehr einfach mit dem selben Namen zugreifen, den du auch vorher verwendet hast, sondern musst sie aus dem $_REQUEST-Array auslesen:
Zitat:
if(isset($_REQUEST["name"]) and isset($_REQUEST["nachricht"])) {
echo 'name: '.$_REQUEST["name"];
echo 'nachricht: '.$_REQUEST["nachricht"]; }
Jetzt musst du nur noch rauskriegen, wie Leerzeichen und diese Späße in Post-Variablen codiert werden und dann ist dein Problem ohne zusätzliche Komponente gelöst!

Grüße
Max
  Mit Zitat antworten Zitat
The Lord

Registriert seit: 19. Sep 2005
Ort: Dortmund
125 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: Html-Forms mit Indy

  Alt 1. Okt 2007, 12:19
Aber ich wollte es eigentlich mit der INDY Komponente machen
Trotzdem probiere ich es nachher mal aus.

Gruß
Alexander
Dunkel die andere Seite ist...
Klappe Yoda und iss deinen Toast!
  Mit Zitat antworten Zitat
The Lord

Registriert seit: 19. Sep 2005
Ort: Dortmund
125 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: Html-Forms mit Indy

  Alt 6. Okt 2007, 18:39
formular.php
Code:
<?php

echo "<form method=\"post\" action=\"mail.php?name=$name&nachricht=$nachricht\">";

?>

<form>

Ihr Name: <input type="text" name="name">




Ihre Nachricht: <textarea name="nachricht"></textarea>




<input type="submit" name="Button" value="Abschicken">

</form>


mail.php
Code:


<?PHP

echo "Sie haben folgende Angaben gemacht:
";

echo "Ihr Name: $_POST[name]
";

echo "Ihre Nachricht $_POST[nachricht]";

mail("form@nieronator.de","Nachricht von $_POST[name]",$_POST[nachricht]);

?>
Ist den das PHP Script richtig?
Alexander
Dunkel die andere Seite ist...
Klappe Yoda und iss deinen Toast!
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: Html-Forms mit Indy

  Alt 6. Okt 2007, 18:42
Das gehört aber nicht zu diesem Delphi-Thema. Deine erste Anlaufstelle sollte php.net sein, denn da findest du das meiste. Auch einige Beispiele, die deine Frage beantworten.

Ich würde auch generell $_POST['name'] schreiben, doch wie gesagt, das gehört nicht hier her.
  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 04:53 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