![]() |
Html-Forms mit Indy
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ß |
Re: Html-Forms mit Indy
Hallo,
ja, das geht mit TIdHTTP. Ich vermute, die Daten werden mittels "Post" übermittelt.
Delphi-Quellcode:
Wobei "name" und "password" die Namen deiner Formularfelder darstellen. Du musst auch nicht unbedingt eine TStringList nutzen.
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; Über die Suche wärst du übrigens fündig geworden. ;) |
Re: Html-Forms mit Indy
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. ![]()
Code:
Jetzt verwende ich den oben genannten Code mit einer kleinen Änderung:
<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>
Delphi-Quellcode:
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?
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; ![]() Ich freue mich über jede Hilfe :) Gruß Alex |
Re: Html-Forms mit Indy
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:
Dürfte eigentlich nicht anders funktionieren als deine Indy-Komponente.
uses ...ShellAPI;
----------------------- ... ShellExecute(Application.Handle,'open','http://www.nieronator.de/form/mail.php?name=value&nachricht=value',nil,nil,SW_NORMAL); ... 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:
Grüße Max |
Re: Html-Forms mit Indy
Aber ich wollte es eigentlich mit der INDY Komponente machen :(
Trotzdem probiere ich es nachher mal aus. Gruß |
Re: Html-Forms mit Indy
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:
Ist den das PHP Script richtig?<?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]); ?> |
Re: Html-Forms mit Indy
Das gehört aber nicht zu diesem Delphi-Thema. Deine erste Anlaufstelle sollte php.net sein, denn da findest du das meiste. Auch einige
![]() Ich würde auch generell $_POST['name'] schreiben, doch wie gesagt, das gehört nicht hier her. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:49 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz