Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Indy für Dummies (https://www.delphipraxis.net/161037-indy-fuer-dummies.html)

Exterminans 13. Jun 2011 18:21

Indy für Dummies
 
ich bin totaler Neuling was Delphi und Programmieren angeht.

Daher die Frage: Kann mir hier IRGENDWER das mit den Indys erklären

-vorab:
-Ich hänge hier schon seit 3 Tagen an einem ,,simplen'' Programm.
-ich habe mir in verschiedenen Foren ,,ähnliche'' fälle angesehen.
-mir die Finger wund gegoogelt.
und dennoch nichts gefunden was in der Lage war mir dieses Wissen offenbaren.

mein programm sammelt die ins Formular eingetragenen Daten in einem Memo und speichert das memo als
.txt Datei.
nun müsste das programm diese daten an eine bestimmte (nach Möglichkeit) feste, zeitlich unbegrenzte
adresse(bin nicht sicher in wie weit man diese ,,Server'' nennen kann) versendet -und dort Gespeichert werden, jedoch ohne das dadurch einem ,,hacker'' den zugriff auf diese adresse(durch in meinem Programm vorliegende Daten) zu erleichtern.

ich weiß nicht ob ich die IdFTP oder IdHttp Komponente verwenden soll, oder ob etwas anderes vorzuziehen ist.
ich weiß nicht wie ich an die Parameter dafür komme.
ich weiß nicht wie ich diesen Komponenten die paramenter vermitteln muss.
komme und wie ich der Komponente sage was sie tun soll.

+KEIN Indy Vorwissen
+Keine ahnung von PHP & Co
(Anfänger, sag' ich ja)

von den 3 Tagen hab ich bloß ca 2 stunden bis zur aktuellen version des Programmes benötigt, seit dem hänge ich
an diesem Problem.

benötige dringend Hilfe

mkinzler 13. Jun 2011 18:27

AW: Indy für Dummies
 
Formulatdaten hört sich sehr nach HTTP an. U.U. wäre dann ein TWebBrowser besser geeignet.

Was soll das Programm genau machen?

Exterminans 13. Jun 2011 18:38

AW: Indy für Dummies
 
Um genau zu sein geht es um einen Charaktertransfer für einen mmorpg server. Das programm bieted die möglichkeit die ,,Werte'' seines charakters einzugeben diese werden gespeichert um dann sofort verschickt zu werden sodas wir diese Angaben auswerten können und der Spieler mit (mehr oder weniger) dem selben Charakter den er vorher woanders hatte weiterspielen kann.

ignoriert die tatsache das die spieler falsche angaben machen können darum kümmer ich mich später^^

mkinzler 13. Jun 2011 18:40

AW: Indy für Dummies
 
Eine eigense Seite oder wird auf eine vorhandene/fremde zugegriffen?

Exterminans 13. Jun 2011 18:47

AW: Indy für Dummies
 
nein wir ermöglichen dem Spieler sich einen Charakter zu erstellen, wie der den er sich erspielt hat, auf seinem alten
,,Spiele-Server'' mehr nicht.


wir haben eigene Webseite und Server

Aphton 13. Jun 2011 19:51

AW: Indy für Dummies
 
Zitat:

nun müsste das programm diese daten an eine bestimmte (nach Möglichkeit) feste, zeitlich unbegrenzte
adresse(bin nicht sicher in wie weit man diese ,,Server'' nennen kann) versendet -und dort Gespeichert werden, jedoch ohne das dadurch einem ,,hacker'' den zugriff auf diese adresse(durch in meinem Programm vorliegende Daten) zu erleichtern.
Häh? Lass mich das mal so zusammenfassen, wie ich das verstanden habe:
Du willst Daten an einen Server verschicken, willst dies aber erreichen, ohne dass es einem Dritten möglich ist, rauszufinden, an welchen Server du die Daten verschickt hast?

Falls das so stimmt, dann frage ich mich - wieso? (Designfehler?)

Exterminans 13. Jun 2011 19:58

AW: Indy für Dummies
 
Ich erklär mein Problem noch mal

das Programm soll
auf jedem beliebigen (duchschnittlichen) Pc (WindowsXP bis Windows7) aus ausgeführt werden können (Kann Es)


Ein Fragebogen öffnet sich, dort können Werte eingetragen werden Inventar, Rüstung, Level usw.

Das Programm soll die von Benutzer eingegebenen Daten(als Txt) lokal auf dessen Pc zwischenspeichern.
(Kann Es)


und es soll
die dateien(txt und evtl. Bilddateien) auf knopfdruck des Benutzers an mich oder den Server senden.
(Kann Es Nicht)


das geht ,laut meiner Recherche mit Indys, aber alle bisher gelesenen Tutorials, und Erklärungen erwarten Vorwissen das ich nicht besitze.

die zu versendenen Daten und Dateien sind nicht vertraulich (sind bloß Werte wie z.B. Die Rüstung eines Chrakters oder dessen Zauber)^^.
Bloß darf man durch das oben genannte Programm Nicht an Verbindungsdaten gelangen können und sich somit unerlaubt zugriff zu dem Server(Empfänger) zu verschaffen.


ich brauche eine Anfänger gerechte Erklärung der Versendung von dateien mit
Delphi 7 enterprise, oder fertige Programmcodes
Alles was mein Problem beseitigt ist willkommen haupsache ich krieg dieses Programm hin.

Namenloser 13. Jun 2011 20:43

AW: Indy für Dummies
 
Zitat:

Zitat von Exterminans (Beitrag 1106203)
die zu versendenen Daten und Dateien sind nicht vertraulich (sind bloß Werte wie z.B. Die Rüstung eines Chrakters oder dessen Zauber)^^.
Bloß darf man durch das oben genannte Programm Nicht an Verbindungsdaten gelangen können und sich somit unerlaubt zugriff zu dem Server(Empfänger) zu verschaffen.

Das geht prinzipiell nicht. Wenn dein Programm beim Nutzer laufen soll, muss es die Verbindungsdaten kennen. Somit ist es auch immer möglich, die Verbindungsdaten aus dem Programm zu extrahieren. An dem gleichen Problem scheitern ja auch alle Kopierschutzmechanismen. Das einzige, was du machen kannst, ist, die Daten zu verschleiern, um das Extrahieren möglichst aufwendig zu machen.

fkerber 13. Jun 2011 20:53

AW: Indy für Dummies
 
Hi,

ich denke, es ist die Frage, wie man Verbindungsdaten definiert.
FTP-Upload wäre sicherlich kritisch, da jemand mit diesen Daten dann uU ja auch wieder was löschen könnte etc.

Realisiert man den Upload aber bspw. über ein (PHP-)Skript, dann gibt es als Verbindunsdaten ja "nur" die URL zu dem Skript und damit alleine kann man (wenn das Skript sicher ist), erstmal nicht so viel Schaden (bis keinen) anrichten.



LG, Frederic

Darkface 13. Jun 2011 22:25

AW: Indy für Dummies
 
Ich denke auch das man mit PHP eine "sichere" Lösung auf rellativ einfachem Wege erreichen kann. Dazu ist eigenlich nur ein PHP-fähiger Webserver auf Empfänger Seite erforderlich und ein Code nach etwa diesem Schema:

Delphi Client:
(Nutzung der Indy TIdHTTP-Komponente)
Delphi-Quellcode:
function SendeAnScript(ScriptAddr:string, Felddaten:string): string;
var Parameter: TStringList;
begin
  Parameter := TStringList.Create;
  Parameter.Add(Felddaten);
  try IdHTTP1.Post(ScriptAddr, Parameter);
  finally Parameter.Free;
  end;
end;
Aufruf:
Delphi-Quellcode:
var rck:string //falls das Script eine Rückgabe liefert, wie "Erfolgreich übermittelt" oder "Fehler Feld xyz fehlt..."
begin
rck:=SendeAnCript('http://server.adresse/script.php','daten=' +Memo1.Text); //Ich vermute mal die Daten stehen in einem Memo oder in ähnlichem...
//das "daten=" vor den eigentlichen Felddaten ist der Name des übergebenen Parameters wie er vom PHP Script später erwartet wird (sowie ein = dran :D)
Ein sehr einfaches PHP-Script könnte so aussehen (Optimierungen hinsichtlich Spam, Sicherheit ect. wären Beispielsweise noch angebracht)...:
Code:
<?php
  mysql_connect("localhost", "Nutzername","Passwort") or die ("Keine Verbindung moeglich");
  mysql_select_db("Datenbankname") or die ("Die Datenbank existiert nicht.");

  $daten= $_POST["daten"];
  mysql_real_escape_string($daten);

  //hier Möglicherweise noch eine Auswertung der Daten, prüfen auf fehlende Inhalte etc. wenn nicht schon in Delphi geschehen

  $eintrag = "INSERT INTO Tabellenname (DatenSpaltenname) VALUES ('$daten')";
  $eintragen = mysql_query($eintrag);

  echo 'Dies wird IMMER zurückgegeben';
?>
Ungetestet.
Der Webserver auf Empfänger Seite sollte natürlich sicher Konfiguriert sein.

MfG :thumb:

-187- 14. Jun 2011 08:23

AW: Indy für Dummies
 
Hmm nachdem ich mir die Problematik durchgelesen habe bleibt für mich eigentlich nur eine Variante:

Ich gehe davon aus das deine Besucher ihr Profil über ein vorhandenen Login auf deiner Seite bereits bearbeiten können. Sollte das nicht der Fall sein sollte die Website erstmal auf diesen Stand gebracht werden.

Über dein Delphi Tool würde ich mich auf der Website via IdHTTP einloggen und dieses Formular bearbeiten. Somit hast du keine hardcoded Login Daten weil jeder Benutzer die Login Daten selber einträgt.

Exterminans 14. Jun 2011 08:32

AW: Indy für Dummies
 
Ok,

Ich soll PHP verwenden aber wie das genau gehen soll verstehe ich immer noch nicht (sry bin halt delphi ein noob^^).

wie stell ich das mit des Skript an
wie sag ich delphi was es wohin, womit

verschicken soll. wie sorge ich dafür das das auch empfangen wird.......

Fragen über fragen :? :(

-187- 14. Jun 2011 08:38

AW: Indy für Dummies
 
Wie bereits gesagt, ich würde die Parameter an ein PHP Script übergeben. PHP hat nichts mit Delphi zu tun, das sollte klar sein.
Für die Übergabe verwende ich idealerweise Indy, und zwar IdHTTP. Warum ? Weil ich die Parameter über das HTTP Protokol an ein PHP Script übergeben möchte. Wie genau? In dem man die URL zu dem PHP Script mit Parametern aufruft und diese im PHP Script selbst abfängt und weiterverarbeitet. via MySQL Connection in eine Datenbank schreibt. Die HTML Seiten deines Services werden dann bei jedem Aufruf durch ein weiteres PHP Script mit den aktuellen Daten aus der MySQL Datenbank generiert.
Beispiel URL würde dann so aussehen:
Code:
http://dein-service.de/index.php?sid=eine_session_id_ist_evtl_nötig&parameter1=blabla&parameter2=blabla
Edit: Es kommt aufjedenfall darauf an wie "professionell" ihr das ganze machen wollt. Es gibt natürlich immer dirty Workarounds ;)

Exterminans 14. Jun 2011 08:47

AW: Indy für Dummies
 
ich habe noch nie ein script an eine php übergeben sry die Indys sind zu hoch für mich wir sind im unterricht bei den
Standart-Komponenten -.-

ich hab k.A. von php und indy wie gesagt

......und der link den du geposted hast ist ,,invalid'' ich kann den net aufrufen ........
jetz ist der weg -.-

-187- 14. Jun 2011 08:52

AW: Indy für Dummies
 
Naja ich glaube du hast nicht verstanden was ich dir vermitteln wollte. Natürlich ist der Link invalid :)

Indy's sind nicht zu hoch für dich. Im Gegenteil, Indy macht einem das Leben einfach (i.d.R). Dein Problem liegt darin das du 1. nicht verstanden hast wie die Kommunikation funktionieren könnte und 2. kein Konzept hast.

Fragen wir mal anders: Wie hast du dir das denn eigentlich vorgestellt? :)

Exterminans 14. Jun 2011 09:03

AW: Indy für Dummies
 
Ich will bloß das die daten (txt und bild dateien) vom Programm an den Server gelangen(geschickt werden)........

nicht mal mein informatik Lehrer kann mir das erklären
er sagt :,,Ich habe indys noch nie verwendet!´´:shock:
......... wie soll das dann verstehen
das ist Stoff den man laut Zitat während des Schulverlaufs nicht durch nimmt......
.......wie soll ich das dann mit den indys machen

-187- 14. Jun 2011 09:10

AW: Indy für Dummies
 
Hmm indem du es dir selbst beibringst? Ein Ansatz wären die gefühlen 200 Threads die sich hier im Forum mit dem selben Thema befassen.

Okay, sagen wir die Daten gelagen durch irgendeinen dummen Zufall auf den Server -> Was dann ? Ich kann ja nicht hellsehen, wenn du mir erklärst was mit den Daten passieren soll kann ich dir vielleicht auch eine Alternative zeigen.

Edit: Google nach PHP Upload Script und rufe es via IdHTTP.Post aus deiner Delphi Applikation auf.

Exterminans 14. Jun 2011 09:15

AW: Indy für Dummies
 
Ja aber alle Threads die ich bisher darüber gelesen habe gehen auch widerum davon aus das man das weiß es ist wie selbstverständlich für die anderen.
keiner verschwendet auch nur einen gedanken daran das es Leute gibt die das nicht wissen. Ansonsten würde man nicht Fragen .......

schlauerjunge1234 14. Jun 2011 09:16

Ich hab Hunger auf Hering
 
Hallo Delphi Neuling
Ich weiß nicht wo dein Problem liegt.
Ich versteh einfach nicht wie man so wenig ahnung von delphi haben kann ,.,
Es ist mir ein Unding wie wenig Sachverstand ein Mensch aufbringen kann um nicht einmal Deplphi zu bedienen.
DANKE

-187- 14. Jun 2011 09:22

AW: Indy für Dummies
 
@Exterminans: Natürlich geht man von einem gewissen Basiswissen und Eigeninitiative aus. Keiner wird dir dein Programm schreiben. Es gibt auch keine patent Lösung für dein Problem und wenn man es genau betrachtet ist es auch nicht, wie du fälschlicherweise in deinem Eröffnungthread beschrieben hast, ein simples Problem. Hast du dich schonmal auf den Indy Seiten umgeschaut?

@schlauerjunge1234: Sehr geistreich! Man gut das du dich hier registriert hast.

mkinzler 14. Jun 2011 09:25

AW: Indy für Dummies
 
@schlauerjunge1234: Und um das zu sagen, hast du dich hier angemeldet?

Exterminans 14. Jun 2011 09:28

AW: Indy für Dummies
 
@Schauerjunge
ich bin wie du selber gesagt hast Neu
Ich habe erst am schuljahres anfang mit der Wahl des Faches Informatik mit dem Programmieren Angefangen.
Ich habe zuvor gar nichts mit programmieren zu tun gehabt.
Delphi war und ist die erste Programmiersprache die ich gelernt
hab und immernoch lerne.

ich hatte keinerlei Vorkenntnisse und daher macht es keinen unterschied wie einfach die sprache ist......
Es ist und bleibt in jedem Fall Neuland

peterlord1234 14. Jun 2011 09:28

AW: Indy für Dummies
 
hallo ich kann dir bei deinem problem helfen :)
schilder es mir nochmal !!

-187- 14. Jun 2011 09:31

AW: Indy für Dummies
 
Exterminans, wir alle lernen noch Delphi und das wird sich auch niemals ändern :)

Ich wüsste zugern ob schlauerjunge1234 und peterlord1234 von der selben IP zugreifen :D

Dälphi Pro 14. Jun 2011 09:32

Dumm
 
zu mal vorab die Programmier sprache ist nicht Delphi sonder Pascale

und ich glaube du bist wirklich zu dumm um dieses Programm selbst schreiben zu können. Wir liegen hier vor einem simpelen Problem, das selbst ein 6 Jähriges Kind innerhalb von 20 min Lösen könnte!
ICh finde der thread sollte geclosed werden bei so viel dummheit

Exterminans 14. Jun 2011 09:32

AW: Indy für Dummies
 
ich scheitere an der IdHttp Indy Komponente ich verstehe einfach nicht (trotz mehrtägiger Recherche) wie ich mit dieser Komponente Dateien über php auf einen Server senden kann

-187- 14. Jun 2011 09:35

AW: Indy für Dummies
 
Zitat:

Zitat von Exterminans (Beitrag 1106267)
ich scheitere an der IdHttp Indy Komponente ich verstehe einfach nicht (trotz mehrtägiger Recherche) wie ich mit dieser Komponente Dateien über php auf einen Server senden kann

Das habe ich bereits erklärt! Was soll die erneute Frage ?

PS: Kann man wirklich soviel Langeweile haben das man sich permanent Accounts erstellt um dieses Thema vollzuspammen ?

DeddyH 14. Jun 2011 09:37

AW: Indy für Dummies
 
Meldet sich jetzt hier die ganze Klasse an, um einen Kameraden zu beschimpfen? Das kann ja nicht der Sinn eines Forums sein. Zum Problem: Du hast es ja mit 2 Rechnern zu tun, dem Webserver, der die Daten empfangen und irgendwie verarbeiten soll und dem Client, auf dem der Benutzer seine Einstellungen vornehmen und diese dann versenden soll. An Deiner Stelle würde ich mich zunächst um die Server-Seite kümmern, woher er die Daten bekommt, ist ja erst einmal zweitrangig. Ob er die nun über ein CGI (das kann man auch in Delphi schreiben, sofern es ein Windows-Server ist) oder ein PHP/Perl/Python-Script verarbeitet musst Du selbst festlegen.

mkinzler 14. Jun 2011 09:43

AW: Indy für Dummies
 
Entweder ist es eine Klasse oder eine Person, welche uns hier zum Narren halten will.

Daniel 14. Jun 2011 09:45

AW: Indy für Dummies
 
Whatever - ich bitte, diese Zwischenrufe gepflegt zu ignorieren. Die Konten sind gelöscht.

Exterminans 14. Jun 2011 13:51

AW: Indy für Dummies
 
1. ich seh die infos vor lauter Spam nicht mehr

2. den Wald vor lauter Bäumen

3. Ich bin genauso schlau wie vorher ich kenn weder die befehle für indy noch weißich woher ich Parameter bekomme
oder finde ich online keine Erklärung die ich verstehe.

und was soll ich hier machen
[Fehler] Unit2.pas(30): Undefinierter Bezeichner: 'TIdMultipartFormDataStream'

DeddyH 14. Jun 2011 14:06

AW: Indy für Dummies
 
Ist denn der Server schon so weit, dass er mit den Daten etwas anfangen kann?

Exterminans 14. Jun 2011 14:21

AW: Indy für Dummies
 
Es ist eine php adresse eingerichted

http://................upload.php?Dir= (mitelteil zensiert)^^

:,,der ist gültig nur musst du eine antwort schiken "SUCESS"´´
sagt der kumpel von mir(dem gehört der server)

fkerber 14. Jun 2011 14:22

AW: Indy für Dummies
 
Hi,

und was erwartet dieses PHP-Skript an eingeben? (GET und/oder POST Daten?)


LG, Frederic

DeddyH 14. Jun 2011 14:25

AW: Indy für Dummies
 
Eben, man muss schon genau wissen, welche Daten in welcher Form zu übergeben sind.

Aphton 14. Jun 2011 15:42

AW: Indy für Dummies
 
Ich erleuchte dich einmal - vergiss es!

Nicht dass es nicht möglich wäre - du würdest dies hier mit Ach und Krach EVENTUELL hinkriegen aber das ist es nicht Wert. Du eigne dir zuerst einmal so die Basics an und hab ein Gefühl dafür, wie man allgemein an Probleme rangeht! Lerne, proof of concept Code zu basteln um zu sehen, wie die Problemlösung auszusehen hat.
So wird das nicht. Und jeder, der dir in deinem jetztigen Zustand helfen mag, wird leiden müssen - weil er einfach alles selber machen und dir das dann mehr als 3x erklären müsste.

Ist jetzt nicht böse gemeint, aber tu das wirklich!

Exterminans 14. Jun 2011 18:52

AW: Indy für Dummies
 
Delphi-Quellcode:
procedure TForm2.Button1Click(Sender: TObject);
var
Post:TIdMultipartFormDataStream;
begin
Stream := TIdMultipartFormDataStream.Create;
try
stream.AddFormField('ffield1','one');
stream.AddFormField('ffield2','dua');
stream.AddFile( 'Sc.txt',{name einfügen} , 'text/plain' );
str :=IdHTTP1.Post('http://orsmtftcra.dyndns.org/upload.php?Dir=', Stream ); {seite verändert}
ShowMessage('Sucess :)');
except
ShowMessage('Upload Fail :(');
end;
Stream.Free;
end;

Was mach ich Falsch

da kommt(unter anderem) [Fehler] Unit2.pas(30): Undefinierter Bezeichner: 'TIdMultipartFormDataStream'

himitsu 14. Jun 2011 19:00

AW: Indy für Dummies
 
Zitat:

TIdMultipartFormDataStream
Ist eine passende Indy-Version vorhanden/installiert?
Hast du die nötigen Units eingebunden?
Stimmen die Suchpfade?
...

-187- 14. Jun 2011 22:11

AW: Indy für Dummies
 
Exterminans, poste mal deine Uses Liste.

Edit: Und rück dein Code ein.

geskill 14. Jun 2011 22:36

AW: Indy für Dummies
 
Es ist nicht lange her, da habe ich ein Tutorial zur Benutzung genau dieser Komponenten erstellt. Mit ganz viel Quellcode und Kommentaren ist wirklich bis aufs kleinste Detail beschreiben, wie man die Komponente(n) benutzt und wie nicht.

http://www.delphipraxis.net/160152-i...protokoll.html


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:22 Uhr.
Seite 1 von 2  1 2      

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