Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Kommunikation zwischen Delphi-Anwendung und dem Internet (https://www.delphipraxis.net/84165-kommunikation-zwischen-delphi-anwendung-und-dem-internet.html)

ManuelR 12. Jan 2007 14:53


Kommunikation zwischen Delphi-Anwendung und dem Internet
 
Hallo,:hi:

ich habe eine Win32-Anwendung geschrieben und möchte dass sich die User
online registrieren können. Es geht also um die Kommunikation zwischen einer
Delphi-Anwendung und dem Internet bzw. meiner Homepage(PHP und MySQL).

Leider habe so gar keine Ahnung wie man das gewöhlich macht :pale:

Eine Lösung (die mir aber nicht gefällt) wäre die ganzen Daten über ein
Delphi-Form einzusammeln und in einer Datei hochzuladen. Anschließend
bekommt der User eine Email....

Vielleicht kann mir jemand in dürren Worten skizzieren wie eine bessere
Lösung aussehen könnte ? :balloon:

Danke

mkinzler 12. Jan 2007 15:27

Re: Kommunikation zwischen Delphi-Anwendung und dem Internet
 
Es gibt dafür verschgiedenste Komponentensammlung oder Libraries. Suche mal nach INDY, ICS, Synapse, NetMaster, ...
(HTTPClient)

inherited 12. Jan 2007 15:54

Re: Kommunikation zwischen Delphi-Anwendung und dem Internet
 
Oder du kommuniziert direkt mit deiner MySQL-Datenbank

ManuelR 12. Jan 2007 16:08

Re: Kommunikation zwischen Delphi-Anwendung und dem Internet
 
Danke für die Antwort.

Ich weiss bloss nicht wie ich vorgehen soll.
Kann ich z.B. direkt aus Delphi heraus auf die MYSQL-DB auf meiner Home-
page zugreifen ? Oder soll per PHP eine Seite generiert werden, die dann
im TWebBrowser angezeigt wird und PHP erledigt dann die Logik ?

Danke

freak4fun 12. Jan 2007 16:10

Re: Kommunikation zwischen Delphi-Anwendung und dem Internet
 
Unterstützt dein Webhoster externe Zugriffe auf die mySQL-Datenbank? Viele Free-Hoster tuen das nicht.

Edit: Was wilst du denn genau machen. Wer soll sich wo und warum anmelden können? :gruebel:

MfG
freak

IngoD7 12. Jan 2007 17:02

Re: Kommunikation zwischen Delphi-Anwendung und dem Internet
 
Möglichkeiten gibt es viele.

Ich würde auch - wie schon vorgeschlagen - eine HTTP-Client-Komponente verwenden, die die Registrierdaten als Parameter im Aufruf mitschickt. Serverseitig empfangen, verarbeitet und bestätigt würde dieser Aufruf wohl z.B. am ehesten durch ein PHP-Script.

inherited 12. Jan 2007 17:59

Re: Kommunikation zwischen Delphi-Anwendung und dem Internet
 
Entweder benutzt du, wenn dein Webhoster direkten Zugriff auf die Datenbank erlaubt, die MySQL-direct-Units, oder die ZeosLib, oder du wartest darauf, dass ich die kleine Komponente fertig habe an der ich gerade am Entwickeln bin für einfachen Zugriff auf MySQL-Funktionen.

ManuelR 12. Jan 2007 19:05

Re: Kommunikation zwischen Delphi-Anwendung und dem Internet
 
Danke euch allen für die Beiträge. Tolles Forum!:-D

Also, der direkte Zugriff auf die DB wäre sicher für mich die einfachste und schnellste Lösung.
Allerdings weiss ich nicht ob mein Webhoster direkten Zugriff auf die Datenbank erlaubt.
Muss ich nachfragen.
Frage: Heisst das dann aber dass ich an auf diesen Provider festgelegt bin, weil ich den ServerNamen
angeben muss oder wie wird darauf zugegriffen?

mkinzler 12. Jan 2007 19:10

Re: Kommunikation zwischen Delphi-Anwendung und dem Internet
 
Zitat:

Frage: Heisst das dann aber dass ich an auf diesen Provider festgelegt bin, weil ich den ServerNamen
angeben muss oder wie wird darauf zugegriffen?
Der Zugriff erfolgt enteder per Servername oder über die IP. Und das sowohl bei Direktzugriff wie auch per Zugriff per "MiddleWare".

ManuelR 12. Jan 2007 20:47

Re: Kommunikation zwischen Delphi-Anwendung und dem Internet
 
Hallo,

ich habe von meinem Provider erfahren dass Direktzugriff möglich ist :firejump: . Darum werde
ich das jetzt zuerst mal probieren mit den MySQL-direct-Units.

Zitat:

Entweder benutzt du, wenn dein Webhoster direkten Zugriff auf die Datenbank erlaubt, die MySQL-direct-Units, oder die ZeosLib, oder du wartest darauf, dass ich die kleine Komponente fertig habe an der ich gerade am Entwickeln bin für einfachen Zugriff auf MySQL-Funktionen.
Wann glaubst Du ist Deine Komponente einsatzbereit ?

Zitat:

Der Zugriff erfolgt entweder per Servername oder über die IP.
Das heisst der Zugriff ist fest an den Provider gebunden und das macht bei Providerwechsel evtl. Probleme ?

MrKnogge 12. Jan 2007 20:52

Re: Kommunikation zwischen Delphi-Anwendung und dem Internet
 
Moin,

Zitat:

Zitat von ManuelR
Das heisst der Zugriff ist fest an den Provider gebunden und das macht bei Providerwechsel evtl. Probleme ?

Nein, du musst halt die IP im Programm ändern, bzw. dein Domain-Namen mit zum neien Provider nehmen.

Gruß

mkinzler 12. Jan 2007 20:53

Re: Kommunikation zwischen Delphi-Anwendung und dem Internet
 
Zitat:

Das heisst der Zugriff ist fest an den Provider gebunden und das macht bei Providerwechsel evtl. Probleme ?
Nicht unbedingt, wenn du ne Domain registriert hast und MySQL-Server läuft auf dem selben Rechner, dann wird die Domain ja beim Providerwechsel mitumgezogen. Sonst mußt du dein Programm u.U anpassen. Am Besten lagerst du die Zugangsdaten in ini o.ä. aus.

ManuelR 12. Jan 2007 20:59

Re: Kommunikation zwischen Delphi-Anwendung und dem Internet
 
Ich glaube jetzt hab ich's verstanden.

Also,das sind ja Reaktionszeiten, ich bin platt.

Danke

Nicolai1234 12. Jan 2007 22:00

Re: Kommunikation zwischen Delphi-Anwendung und dem Internet
 
Zitat:

Zitat von ManuelR
Ich glaube jetzt hab ich's verstanden.

Also,das sind ja Reaktionszeiten, ich bin platt.

Danke

Ja, das lieben wir alle so an der DP :P

Aber einen guten Brauch haben hier alle vergessen :?

:bounce1: :bouncing4: :dp: HERZLICH WILLKOMMENINDER DP :dp: :bounce1: :bouncing4:

Viel Spaß noch hier im Forum und viel Erfolg :party:

xSkaschY 13. Jan 2007 00:35

Re: Kommunikation zwischen Delphi-Anwendung und dem Internet
 
Alternative:

Du sendest via Delphi mit den TidHTTP Komponenten eine URL die alle Formelemente als variablen übersendet an ein PHP Script. ( via $_GET )

Dabei kannste sogar noch den Browsertyp auswerten das nur deine Anwendung darauf Zugriffhat.

Ist sogar sicherer & einfacher als die Geschichte mit der MySQL, weil die Daten kann man immer sehen in der *.exe.


LG Toby

inherited 13. Jan 2007 15:24

Re: Kommunikation zwischen Delphi-Anwendung und dem Internet
 
Zitat:

Zitat von ManuelR
...
Zitat:

Entweder benutzt du, wenn dein Webhoster direkten Zugriff auf die Datenbank erlaubt, die MySQL-direct-Units, oder die ZeosLib, oder du wartest darauf, dass ich die kleine Komponente fertig habe an der ich gerade am Entwickeln bin für einfachen Zugriff auf MySQL-Funktionen.
Wann glaubst Du ist Deine Komponente einsatzbereit ?

Es kommt drauf an, welche SQL-Funktionen du brauchst ;)
Ich habe inzwischen
Create_table
Insert_into
Delete_from
Select
Create_Database
DropDatabase
Use
Alter_Add

und

Update

implementiert. Hast du eventuell ICQ o.ä.? Dann hätte ich nämlich gleich jemanden der meine Komponente mal auf Herz und Nieren testet :mrgreen:

ManuelR 14. Jan 2007 00:07

Re: Kommunikation zwischen Delphi-Anwendung und dem Internet
 
Zitat:

Ich habe inzwischen
Create_table
Insert_into
Delete_from
Select
Create_Database
DropDatabase
Use
Alter_Add

und

Update

implementiert
Hallo inherited. Danke für das Angebot. Für meine Zwecke denke ich würde Select/Insert/Update ausreichen. Was ist mit connect ?

Zitat:

Hast du eventuell ICQ o.ä.? Dann hätte ich nämlich gleich jemanden der meine Komponente mal auf Herz und Nieren testet
Nein habe ich im Moment nicht. Braucht man das ? Was ist der Vorteil von ICQ?


@ xSkaschY
Zitat:

Alternative:
Du sendest via Delphi mit den TidHTTP Komponenten eine URL die alle Formelemente als variablen übersendet an ein PHP Script. ( via $_GET )
Dabei kannste sogar noch den Browsertyp auswerten das nur deine Anwendung darauf Zugriffhat.
Ist sogar sicherer & einfacher als die Geschichte mit der MySQL, weil die Daten kann man immer sehen in der *.exe.
Hallo Toby. Vielen Dank für den Alternativvorschlag. Ich werde beide probieren. Mit Delphi und SQL kenne ich mich halt aus, mit den
Indy-Komponenten nicht. Könntest Du dazu vielleicht noch ein Stück Code nachreichen ?
Danke

inherited 14. Jan 2007 00:19

Re: Kommunikation zwischen Delphi-Anwendung und dem Internet
 
Zitat:

Zitat von ManuelR
Hallo inherited. Danke für das Angebot. Für meine Zwecke denke ich würde Select/Insert/Update ausreichen. Was ist mit connect ?

Zitat:

Hast du eventuell ICQ o.ä.? Dann hätte ich nämlich gleich jemanden der meine Komponente mal auf Herz und Nieren testet
Nein habe ich im Moment nicht. Braucht man das ? Was ist der Vorteil von ICQ?

Connect ist natürlich auch implementiert :mrgreen:
Der Vorteil von ICQ wäre, dass du mir direkt sagen kannst ob etwas nicht funktioniert und ich den Fehler sofort ausbügeln könnte. Über das Forum wird nämlich immer eine gewisse verzögerung da sein.

xSkaschY 14. Jan 2007 09:21

Re: Kommunikation zwischen Delphi-Anwendung und dem Internet
 
Zitat:

Hallo Toby. Vielen Dank für den Alternativvorschlag. Ich werde beide probieren. Mit Delphi und SQL kenne ich mich halt aus, mit den
Indy-Komponenten nicht. Könntest Du dazu vielleicht noch ein Stück Code nachreichen ?
Danke

Nun ja, das ist recht einfach:

Du erstellst eine TidHTTP Komponente auf deinem Form nennst die bsp.-weise mal "httpObject".

Dann wo du die Formular übertragen möchtest einfach ein

Delphi-Quellcode:
// ....
var status: string;
begin
// ....
// Ruft das PHP-Skript auf.
status := httpObject.Get('http://www.deinserver.de/auswertung.php?name=' + namEdit.Value + '&email=' + emailEdit.Value);

// Überprüft ob alles ok ist.
if status = 'ok' then showmessage('alles ok');
// ....
auswertung.php:
Code:
<?php
// Zeigt alle Fehler an.
error_reporting(E_ALL)

// Security
$name = addslashes(@$_POST['name']);
$email = addslashes(@$_POST['email']);

/**
 * Nur ein simples beispiel.
 * 
 * Kannst hier dann deine MySQL Abfragen usw. machen.
 *
 **/
if (!empty($name) && !empty($email)) print 'ok';

?>

So in der Art, ist aber ungetestet.

Jelly 14. Jan 2007 10:09

Re: Kommunikation zwischen Delphi-Anwendung und dem Internet
 
Prinzipiell würd ich für so sachen SOPA vorschlagen. ZUmindest mit PHP 5 ist das recht leicht zu realisieren (siehe hier), und aus dem Delphi Client heraus noch leichter auf einen Webservice zuzugreifen.

EDIT: Sorry, aus Versehen falschen Link kopiert.

Yheeky 14. Jan 2007 11:40

Re: Kommunikation zwischen Delphi-Anwendung und dem Internet
 
Zitat:

Zitat von xSkaschY
Ist sogar sicherer & einfacher als die Geschichte mit der MySQL, weil die Daten kann man immer sehen in der *.exe.

Wenn man ne gute Komponente hat und man die Daten zusätzlich gut verschlüsselt dann nicht...

inherited 14. Jan 2007 12:24

Re: Kommunikation zwischen Delphi-Anwendung und dem Internet
 
Zitat:

Zitat von Jelly
Prinzipiell würd ich für so sachen SOPA vorschlagen. ZUmindest mit PHP 5 ist das recht leicht zu realisieren (siehe hier), und aus dem Delphi Client heraus noch leichter auf einen Webservice zuzugreifen.

EDIT: Sorry, aus Versehen falschen Link kopiert.

Meinst du SOAP? :gruebel:

Jelly 14. Jan 2007 13:52

Re: Kommunikation zwischen Delphi-Anwendung und dem Internet
 
Zitat:

Zitat von inherited
Meinst du SOAP? :gruebel:

Ja, sorry. War nur vertppit :-)

xSkaschY 14. Jan 2007 13:55

Re: Kommunikation zwischen Delphi-Anwendung und dem Internet
 
Zitat:

Zitat von Yheeky
Zitat:

Zitat von xSkaschY
Ist sogar sicherer & einfacher als die Geschichte mit der MySQL, weil die Daten kann man immer sehen in der *.exe.

Wenn man ne gute Komponente hat und man die Daten zusätzlich gut verschlüsselt dann nicht...

Aber warum soviel arbeit wenn auch einfach geht.
Klar ich baue auch lieber explizit eine Verbindung zur Datenbank auf.

Aber das ist auch nur ein alternativ Beispiel gewesen mit evtl. Vorteilen, die man OHNE zusätzliche Arbeit an den jeweiligen Komponenten hat.

IngoD7 14. Jan 2007 18:39

Re: Kommunikation zwischen Delphi-Anwendung und dem Internet
 
Es geht doch um das (interaktive?) Registrieren und nicht um das Befüllen einer Datenbank mit zig Datensätzen. :warn:

Zitat:

Zitat von IngoD7
Möglichkeiten gibt es viele.

Ich würde auch - wie schon vorgeschlagen - eine HTTP-Client-Komponente verwenden, die die Registrierdaten als Parameter im Aufruf mitschickt. Serverseitig empfangen, verarbeitet und bestätigt würde dieser Aufruf wohl z.B. am ehesten durch ein PHP-Script.

Warum also die Datenbank direkt öffnen und beschreiben, anstatt einem "intelligenten" PHP-Script die Registrierungsdaten zu übergeben, welches auch direkt eine Antwort verfassen könnte?
Ich würde auch die Umsetzung von xSkaschY nehmen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:30 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 by Thomas Breitkreuz