![]() |
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 |
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? |
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^^ |
AW: Indy für Dummies
Eine eigense Seite oder wird auf eine vorhandene/fremde zugegriffen?
|
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 |
AW: Indy für Dummies
Zitat:
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?) |
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. |
AW: Indy für Dummies
Zitat:
|
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 |
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:
Aufruf:
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;
Delphi-Quellcode:
Ein sehr einfaches PHP-Script könnte so aussehen (Optimierungen hinsichtlich Spam, Sicherheit ect. wären Beispielsweise noch angebracht)...:
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)
Code:
Ungetestet.
<?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'; ?> Der Webserver auf Empfänger Seite sollte natürlich sicher Konfiguriert sein. MfG :thumb: |
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. |
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 :? :( |
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:
Edit: Es kommt aufjedenfall darauf an wie "professionell" ihr das ganze machen wollt. Es gibt natürlich immer dirty Workarounds ;)
http://dein-service.de/index.php?sid=eine_session_id_ist_evtl_nötig¶meter1=blabla¶meter2=blabla
|
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 -.- |
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? :) |
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 |
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. |
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 ....... |
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 |
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. |
AW: Indy für Dummies
@schlauerjunge1234: Und um das zu sagen, hast du dich hier angemeldet?
|
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 |
AW: Indy für Dummies
hallo ich kann dir bei deinem problem helfen :)
schilder es mir nochmal !! |
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 |
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 |
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
|
AW: Indy für Dummies
Zitat:
PS: Kann man wirklich soviel Langeweile haben das man sich permanent Accounts erstellt um dieses Thema vollzuspammen ? |
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.
|
AW: Indy für Dummies
Entweder ist es eine Klasse oder eine Person, welche uns hier zum Narren halten will.
|
AW: Indy für Dummies
Whatever - ich bitte, diese Zwischenrufe gepflegt zu ignorieren. Die Konten sind gelöscht.
|
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' |
AW: Indy für Dummies
Ist denn der Server schon so weit, dass er mit den Daten etwas anfangen kann?
|
AW: Indy für Dummies
Es ist eine php adresse eingerichted
![]() :,,der ist gültig nur musst du eine antwort schiken "SUCESS"´´ sagt der kumpel von mir(dem gehört der server) |
AW: Indy für Dummies
Hi,
und was erwartet dieses PHP-Skript an eingeben? (GET und/oder POST Daten?) LG, Frederic |
AW: Indy für Dummies
Eben, man muss schon genau wissen, welche Daten in welcher Form zu übergeben sind.
|
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! |
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' |
AW: Indy für Dummies
Zitat:
Hast du die nötigen Units eingebunden? Stimmen die Suchpfade? ... |
AW: Indy für Dummies
Exterminans, poste mal deine Uses Liste.
Edit: Und rück dein Code ein. |
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.
![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:22 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