URL-Aufruf mit RunProgram u. Übergabe von Text-Zeilen

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
marcelx
Beiträge: 429
Registriert: 19.02.2010 20:19
Wohnort: Darmstadt

URL-Aufruf mit RunProgram u. Übergabe von Text-Zeilen

Beitrag von marcelx »

Hallo,

wie kann ich Text-Daten an zzzz.php übergeben (Daten aus eine Text-Datei)
und wie sieht zzzz.php aus um diese Daten anzuzeigen?

Code: Alles auswählen

URL$ = "http://www.xxxx.de/xxx/zzzz.php"
RunProgram("RunDll32.exe", "Url.dll,FileProtocolHandler "+URL$, "")
Danke.
Win-10, PB 5.31 (Windows - x86)
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: URL-Aufruf mit RunProgram u. Übergabe von Text-Zeilen

Beitrag von RSBasic »

Möchtest du deine Daten als GET- oder POST-Parameter übergeben?
In deinem Beispiel kannst du aber deine Daten nur per GET übergeben.
Beispiel:

Code: Alles auswählen

URL$ = "http://www.xxxx.de/xxx/zzzz.php?parameter1=daten1&parameter2=daten2"
RunProgram("RunDll32.exe", "Url.dll,FileProtocolHandler "+URL$, "")
In der php-Datei musst du die Daten so empfangen:

Code: Alles auswählen

<?php
echo 'Parameter1:  ' . $_GET["parameter1"];
echo 'Parameter2:  ' . $_GET["parameter2"];
?>
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
marcelx
Beiträge: 429
Registriert: 19.02.2010 20:19
Wohnort: Darmstadt

Re: URL-Aufruf mit RunProgram u. Übergabe von Text-Zeilen

Beitrag von marcelx »

Danke für dein Lösung.
Ist die Länge der Daten begrenze (z.B. für parameter1)?
Win-10, PB 5.31 (Windows - x86)
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: URL-Aufruf mit RunProgram u. Übergabe von Text-Zeilen

Beitrag von RSBasic »

Die URL mit GET-Parametern darf maximal 2048 Zeichen lang sein. Es kommt aber auf den jeweiligen Client und Server an. Wenn die URL zu lang ist, dann gibt es die Fehlermeldung 414 (Request-URI Too Long).
Wenn du viele Daten an einen Server übermitteln möchtest. würde ich dir empfehlen, deine Daten per POST zu schicken. Da ist das Limit deutlich höher und du kannst deutlich mehr Daten übertragen. Festgelegt ist es auf dem Server über die Variable post_max_size.
Benutze lieber stattdessen HTTPRequest() und #PB_HTTP_Post. Siehe PB-Hilfe. Außerdem ist es nativ und plattformunabhängig und du musst kein RunProgram("RunDll32.exe") benutzen.

Damit du POST-Daten in PHP empfangen kannst:

Code: Alles auswählen

<?php
echo 'Parameter1: ' . $_POST["Parameter1"];
echo 'Parameter2: ' . $_POST["Parameter2"];
?>
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
TroaX
Beiträge: 684
Registriert: 08.03.2013 14:27
Computerausstattung: PC: Ryzen 9 3950X, 96 GB RAM, RX6800XT, 2.5 TB SSD, 21:9 Display, Linux Mint | Lappi: Ryzen 7 5800H, 16 GB RAM, 1 TB SSD, Linux Mint
Wohnort: NRW
Kontaktdaten:

Re: URL-Aufruf mit RunProgram u. Übergabe von Text-Zeilen

Beitrag von TroaX »

Ich würde immer zum Übertragen von Daten an einem Webserver den Request-Body nutzen. Die URL soll grundsätzlich nur der Verweis auf eine Ressource sein. Optionale Parameter sollen nur der genaueren Spezifizierung der Ressource dienen. Mittlerweile ist die HTTP-Bibliothek ausreichend mächtig, um sie für so etwas zu nutzen.
PC: Ryzen 9 3950X | 96 GB RAM | RX6800XT | 2,5 TB NVMe | Linux Mint
Notebook: 16" 3:2 | Ryzen 7 5800H | 16 GB RAM | Radeon Vega | 1TB NVMe | Linux Mint
NAS: Fritz.Box 5690 Pro (Nur für Keepass-DB)
Coding: Purebasic, Spiderbasic, GDevelop, Javascript/Node
Benutzeravatar
marcelx
Beiträge: 429
Registriert: 19.02.2010 20:19
Wohnort: Darmstadt

Re: URL-Aufruf mit RunProgram u. Übergabe von Text-Zeilen

Beitrag von marcelx »

Danke für Ihr Rückmeldung
HTTPRequest() gibt es nicht bei PB 5.31
Win-10, PB 5.31 (Windows - x86)
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: URL-Aufruf mit RunProgram u. Übergabe von Text-Zeilen

Beitrag von RSBasic »

Warum verwendest du noch PB 5.31? Du hast doch bestimmt das Update-Recht oder?
HTTPRequest() gibt es erst ab PB 5.70.
Wenn du die neuste PB-Version nutzt, hast du immer Vorteile:
  • Viele neue Funktionen
  • Bugfixes
  • Unterstützung neuerer Betriebssysteme (z.B. OSVersion())
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
marcelx
Beiträge: 429
Registriert: 19.02.2010 20:19
Wohnort: Darmstadt

Re: URL-Aufruf mit RunProgram u. Übergabe von Text-Zeilen

Beitrag von marcelx »

Weil kein Update von COMatPLUS gibt für PB 5.6
Nach eine lange Pause habe ich sendmail mit PB5.60 ausprobiert und so funktioniert.
Nun, ich verwende COMatePLUS.pbi Version 2.1 aus http://www.rsbasic.de/backups/ und mit PB5.6 bekomme ich die Meldung:
...
[09:31:20] [ERROR] COMatePLUS.pbi (Line: 1383)
[09:31:20] [ERROR] Procedure stack has been corrupted.
[09:38:14] Execution continued.
[09:38:14] [ERROR] COMatePLUS.pbi (Line: 1383)
[09:38:14] [ERROR] Procedure stack has been corrupted.

Die Excel-Datei wird korrekt erzeugt.
Wenn ich mein Programm als exe verwende, ist alles korrekt.
Win-10, PB 5.31 (Windows - x86)
Antworten