| 
| Autor | Beitrag |  
| Mathematiker 
          Beiträge: 2622
 Erhaltene Danke: 1448
 
 Win 7, 8.1, 10
 Delphi 5, 7, 10.1
 
 | 
Verfasst: Do 21.11.13 21:42 
 
Hallo,
 nachdem ich mich stundenlang durch die vielen, vielen Beiträge zu IdHttp.post gekämpft habe, bin ich weiterhin ratlos.
 Ich versuche mit
 		                       Delphi-Quelltext 
 									| 1:2:
 3:
 4:
 5:
 6:
 7:
 8:
 9:
 10:
 11:
 12:
 13:
 14:
 15:
 16:
 17:
 18:
 19:
 20:
 21:
 22:
 23:
 24:
 25:
 26:
 27:
 28:
 
 | procedure Tform1.Download1Click(Sender: TObject);var idhttp1:tidhttp;
 datei:tfilestream;
 begin
 IdHttp1:=tidhttp.create;
 Datei:=TFileStream.create('nutzer.txt',fmCreate);
 try
 IdHttp1.Get('http://www.kepler.c.sn.schule.de/polster/nutzer.txt',Datei);
 finally
 Datei.free;
 end;
 IdHttp1.free;
 end;
 
 procedure Tform1.Upload1Click(Sender: TObject);
 var idhttp1:tidhttp;
 daten:tstringlist;
 begin
 IdHttp1:=tidhttp.create;
 Daten:=Tstringlist.create;
 try
 daten.add('Testdaten');
 IdHttp1.post('http://www.kepler.c.sn.schule.de/polster/nutzer.php',Daten);
 finally
 Daten.free;
 end;
 IdHttp1.free;
 end;
 |  die Datei nutzer.txt mit get zu laden, was perfekt funktioniert.
 Versuche ich mit post zu senden, bekomme ich das berühmte "Connection gracefully closed". Nach den ganzen Kommentaren in der EE zu dieser Meldung, vermute ich, dass kann alles sein.
 Zuerst vermutete ich, dass die PHP-Datei fehlerhaft ist. Die PHP-Datei auf dem Server ist
 		                       PHP-Quelltext 
 									| 1:2:
 3:
 4:
 5:
 6:
 7:
 8:
 9:
 
 | <?phpecho 'Hallo Welt';                     $fp = fopen('nutzer.txt', 'w+');
 if ($fp) {
 foreach($_POST as $Var => $Val) fputs($fp,$Var.' = '.$Val."\n\r");
 fclose($fp);
 }
 ?>
 |  und soll eigentlich die übermittelten Daten in die Nutzer-Datei schreiben.
 Das macht sie aber nicht, da wie gesagt, die "gracefully" Fehlermeldung kommt.
 Die Zeile
 		                       PHP-Quelltext 
 habe ich nur eingefügt, um zu testen, ob überhaupt irgendetwas geschieht. Rufe ich die PHP-Datei mit get bekomme ich eine Datei zurück mit 'Hallo Welt', wie zu erwarten.
 Was mache ich falsch?
 Beste Grüße und Danke für Hinweise
 Mathematiker
 PS: Ich verspreche, dass dies erst einmal meine letzte Anfrage zu IdHttp ist. In Zukunft wende ich mich wieder den Dingen zu, die ich einigermaßen kann. Aber es ärgert mich, dass es einfach nicht funktioniert._________________ Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein
 |  |  |  
| FinnO 
          Beiträge: 1331
 Erhaltene Danke: 123
 
 Mac OSX, Arch
 TypeScript (Webstorm), Kotlin, Clojure (IDEA), Golang (VSCode)
 
 | 
Verfasst: Do 21.11.13 21:52 
 
Moin,
 vorab: Ahnung habe ich auch nicht wirklich, aber hast du mal versucht nicht nur einen einzelnen Eintrag einer Stringlist zu posten, sondern einen String der Form 'name1=Test&name2=Bratwurst&datum=230114'?
 
 Beste Grüße
 |  |  |  
| Mathematiker  
          Beiträge: 2622
 Erhaltene Danke: 1448
 
 Win 7, 8.1, 10
 Delphi 5, 7, 10.1
 
 | 
Verfasst: Do 21.11.13 22:00 
 
	  |  FinnO hat folgendes geschrieben  : |  	  | ... hast du mal versucht nicht nur einen einzelnen Eintrag einer Stringlist zu posten, sondern einen String der Form 'name1=Test&name2=Bratwurst&datum=230114'? | 
 Habe ich gerade versucht, leider ohne Ergebnis.
 Einen einzelnen String interprediert er als Dateinamen, warum auch immer, und unterbricht "gracefully".
 Mehrere Strings in der Liste enden auch mit dem "anmutigen" Abbruch. Was ist daran eigentlich anmutig?
 Beste Grüße
 Mathematiker_________________ Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein
 |  |  |  
| FinnO 
          Beiträge: 1331
 Erhaltene Danke: 123
 
 Mac OSX, Arch
 TypeScript (Webstorm), Kotlin, Clojure (IDEA), Golang (VSCode)
 
 | 
Verfasst: Do 21.11.13 22:08 
 
Und nur dieser String in der Stringlist?    Alles was verrückt ist, kann bei Indy helfen.
 Oder versuch mal so: 
stackoverflow.com/qu...ost-url-using-delphi |  |  |  
| Martok 
          Beiträge: 3661
 Erhaltene Danke: 604
 
 Win 8.1, Win 10 x64
 Pascal: Lazarus Snapshot, Delphi 7,2007; PHP, JS: WebStorm
 
 | 
Verfasst: Do 21.11.13 22:16 
 
_________________ "The phoenix's price isn't inevitable. It's not part of some deep balance built into the universe. It's just the parts of the game where you haven't figured out yet how to cheat."
 Für diesen Beitrag haben gedankt: Mathematiker
 |  |  |  
| FinnO 
          Beiträge: 1331
 Erhaltene Danke: 123
 
 Mac OSX, Arch
 TypeScript (Webstorm), Kotlin, Clojure (IDEA), Golang (VSCode)
 
 | 
Verfasst: Do 21.11.13 22:29 
 
Moin Mathematiker,
 dir zuliebe habe ich tatsächlich nochmal (seit Ewigkeiten) mein Delphi angeheizt und siehe da: Du hast einen Serverseitigen Fehler    Dieser Code (siehe auch der von   Martok ) funktioniert: 
 		                       Delphi-Quelltext 
 									| 1:2:
 3:
 4:
 5:
 6:
 7:
 8:
 9:
 10:
 11:
 12:
 13:
 
 | vars:TStringStream;
 begin
 
 s:=TStringStream.Create();
 s.WriteString('name=Mathematiker');
 try
 idhttp1.Request.ContentType:= 'application/x-www-form-urlencoded';
 Memo1.Text := idhttp1.Post('http://httpbin.org/post',s);
 finally
 s.free;
 end;
 end;
 |  ändert man die URL jedoch auf die von dir angegebene, zeigt sich keine Veränderung deiner Datei. 
 Nützlicher Link [1] Beste Grüße Für diesen Beitrag haben gedankt: Mathematiker
 |  |  |  
| Mathematiker  
          Beiträge: 2622
 Erhaltene Danke: 1448
 
 Win 7, 8.1, 10
 Delphi 5, 7, 10.1
 
 | 
Verfasst: Do 21.11.13 22:49 
 
Hallo Martok, Hallo FinnO,
danke für die schnelle Hilfe.
 Ich werde alles probieren und morgen erst einmal klären, warum unser Schulserver sich weigert, mein Zeug zu verarbeiten.
 
 Beste Grüße
 Mathematiker
 _________________ Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein
 |  |  |  
| jaenicke 
          Beiträge: 19326
 Erhaltene Danke: 1749
 
 W11 x64 (Chrome, Edge)
 Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
 
 | 
Verfasst: Do 21.11.13 22:55 
 
Ich rate mal... fehlende Schreibrechte?
 Wenn du den Code 1:1 auf meinem Server ausprobierst, klappt es problemlos: 		                       Delphi-Quelltext 
 									| 1:2:
 3:
 4:
 5:
 6:
 7:
 8:
 9:
 10:
 11:
 12:
 13:
 14:
 
 | varHttp: TIdHTTP;
 PostData: TStringList;
 begin
 Http := TIdHTTP.Create;
 PostData := TStringList.Create;
 try
 PostData.Add('a=Testdaten');
 Http.Post('http://fleet-federation.de/game/test/test.php', PostData);
 finally
 PostData.free;
 end;
 Http.free;
 end;
 |  Ergebnisdatei:
fleet-federation.de/game/test/nutzer.txt Für diesen Beitrag haben gedankt: Mathematiker
 |  |  |  
| Mathematiker  
          Beiträge: 2622
 Erhaltene Danke: 1448
 
 Win 7, 8.1, 10
 Delphi 5, 7, 10.1
 
 | 
Verfasst: Do 21.11.13 23:01 
 
Hallo jaenicke
 	  |  jaenicke hat folgendes geschrieben  : |  	  | Ich rate mal... fehlende Schreibrechte? | 
 Das wird es wohl sein, oder aber der Server ist wieder mal "halb defekt". Kommt öfters vor, aber wir haben ja auch von billigsten Anbieter die Technik bekommen (öffentlicher Dienst).
 Nachtrag: Ich habe mir gerade mal httpbin.org/post  angesehen.
 Verstehe ich es richtig, dass man unter dieser Adresse kurzzeitig (1 Monat lang     ) eine Datei ablegen und verändern kann, ohne größere Rechteprobleme.
 Konkret will ich eigentlich nur Folgendes:
 Aus einem Programm heraus, dass verschiedene Nutzer haben, soll immer, wenn eine Aufgabe geschafft wurde, nur gesendet werden, wer, welche Aufgabe erfüllt hat. Diese Meldungen kommen hintereinander in eine Textdatei.
 Im Programm selbst wird zur Auswertung die "Nutzer.txt" geladen (geht ja problemlos) und eine "Rangliste" ermittelt. Die Datei brauche ich nur etwa 1 Monat. Danach hat es sich erledigt.
 Wenn es mit dem Schulserver nichts wird, seht ihr dann eine andere Möglichkeit?
 Beste Grüße und Danke für alle Hinweise
 Mathematiker
 Nachtrag2:
 	  |  jaenicke hat folgendes geschrieben  : |  	  | Wenn du den Code 1:1 auf meinem Server ausprobierst, klappt es problemlos: | 
 Ich war einmal so frei und habe es probiert. Post bringt keinen Fehler.
 Verrückt ist aber, dass die Nutzer.txt, wenn ich sie mit
 		                       Delphi-Quelltext 
 									| 1:
 | IdHttp1.Get('http://fleet-federation.de/game/test/nutzer.txt',Datei);					 |  rufe, leer ist. 
 Ich bin dafür wahrscheinlich doch zu dämlich.   _________________ Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein
 
 Zuletzt bearbeitet von Mathematiker am Do 21.11.13 23:16, insgesamt 1-mal bearbeitet
 |  |  |  
| FinnO 
          Beiträge: 1331
 Erhaltene Danke: 123
 
 Mac OSX, Arch
 TypeScript (Webstorm), Kotlin, Clojure (IDEA), Golang (VSCode)
 
 | 
Verfasst: Do 21.11.13 23:15 
 
Kostenloser Hostinganbieter mit Datenbank? Für diesen Beitrag haben gedankt: Mathematiker
 |  |  |  
| jaenicke 
          Beiträge: 19326
 Erhaltene Danke: 1749
 
 W11 x64 (Chrome, Edge)
 Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
 
 | 
Verfasst: Fr 22.11.13 05:42 
 
	  |  Mathematiker hat folgendes geschrieben  : |  	  | Verrückt ist aber, dass die Nutzer.txt, wenn ich sie mit 
 		                       Delphi-Quelltext 
 									| 1:
 | IdHttp1.Get('http://fleet-federation.de/game/test/nutzer.txt',Datei);					 |  rufe, leer ist.
 | 
 Mit "a=Testdaten" als Postdaten? Oder nur mit "Testdaten" wie in deinem ersten Code?
 Wenn du nur "Testdaten" schickst, kann es nicht gehen, da das Serverskript nur Wertnamen mit Werten schreibt.
 Im Anhang liegt ein Demoprojekt.
 Auf dem Server habe ich nur den falschen Zeilenumbruch \n\r ersetzt, damit keine Leerzeilen in der Datei angezeigt werden.
Einloggen, um Attachments anzusehen!
 Für diesen Beitrag haben gedankt: Mathematiker
 |  |  |  
| Mathematiker  
          Beiträge: 2622
 Erhaltene Danke: 1448
 
 Win 7, 8.1, 10
 Delphi 5, 7, 10.1
 
 | 
Verfasst: Fr 22.11.13 11:17 
 
Hallo jaenicke,
 	  |  jaenicke hat folgendes geschrieben  : |  	  | Mit "a=Testdaten" als Postdaten? ... Im Anhang liegt ein Demoprojekt.
 | 
 Vielen Dank.
 Langsam beginne ich das ganze Verfahren zu verstehen und Dein Demoprojekt funktioniert wunderbar.
 
 Eines meiner großen Probleme ist, dass ich dieses PHP-Script nur durch "Abschreiben" von verschiedenen Seiten zusammengebastelt habe und nicht wirklich weiß, was ich da gemacht habe. U.a. glaubte ich, dass die vorhandene Datei Nutzer.txt bei weiteren Post-Daten ergänzt wird. Ein dummer Denkfehler, da ja die Datei dann neu erzeugt wird und nur die letzten Daten gespeichert werden.
 Fazit: Auch zur dieser Problematik muss ich noch 'ne Menge lernen.
 Beste Grüße
 Mathematiker_________________ Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein
 |  |  |  
| FinnO 
          Beiträge: 1331
 Erhaltene Danke: 123
 
 Mac OSX, Arch
 TypeScript (Webstorm), Kotlin, Clojure (IDEA), Golang (VSCode)
 
 | 
Verfasst: Fr 22.11.13 12:46 
 
Moin,
 für deine Anwendung sind Textdateien wirklich eher unorthodox. Ich würde dir durchaus empfehlen, alle Dinge, wo irgendwelche Daten miteinander verknüpft werden sollen, als Datenbankanwendung zu realisieren. Zufällig ist PHP die Sprache, in der Datenbankabfragen gefühlt am leichtesten zu integrieren sind. Mit Textdateien hast du neben der nicht vorhandenen Sicherheit vermutlich eh noch mehr Arbeit. Aber das artet hier in Offtopic aus.
 
 Gruß
 |  |  |  
| Mathematiker  
          Beiträge: 2622
 Erhaltene Danke: 1448
 
 Win 7, 8.1, 10
 Delphi 5, 7, 10.1
 
 | 
Verfasst: Fr 22.11.13 19:11 
 
Hallo,
 ich habe jetzt, dank   jaenicke s Demoprojekt, mein Ziel so gut wie erreicht.
 Erstens muss ich 'w+' gegen 'a+' tauschen
 		                       PHP-Quelltext 
 									| 1:
 | $fp = fopen('nutzer.txt', 'a+');					 |  Zweitens funktionieren Post und Get sehr gut und die Auswertung einer fiktiven Liste klappt auch fehlerfrei.
 Jetzt warte ich noch auf die Freischaltung meines neuen Freehosting-Bereichs und dann ist alles wunderbar in Ordnung.    Auch wenn die Profis hier wahrscheinlich lächeln werden, so ist für mich(!) faszinierend, was man alles machen kann.
 Beste Grüße
 Mathematiker_________________ Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein
 |  |  |  
| hathor Ehemaliges Mitglied
 Erhaltene Danke: 1
 
 
 
 
 | 
Verfasst: Fr 22.11.13 22:58 
 
"Für uns alle ist Internet Neuland."
 Angela Merkel, 2013
 |  |  |  |