Weboberfläche

Für allgemeine Fragen zur Programmierung mit PureBasic.
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Beitrag von DarkDragon »

.:M:. hat geschrieben:php exec()
Rechte setzen, Batch/Bashscript starten, Programm aufrufen.
Quatsch. Atomic Webserver hat kein php.

TobiasR:

Wenn jemand ein Button drückt auf der Webseite auf dem Webserver und das Ziel vom <form action="irgendnedateiaufdemwebserver"> ist, dann kommt ein method="POST" bzw method="GET" Request, bei dem du die Variablen in Form von feldname=feldwert&feldname2=feldwert2&... bekommst.

Beispiel was der Server empfängt:
GET /test.php?fieldname=fieldvalue&fieldname2=fieldvalue2 HTTP/1.1
Host: 127.0.0.1
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.0.1) Gecko/2008070208 Firefox/3.0.1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
Benutzeravatar
.:M:.
Beiträge: 44
Registriert: 29.07.2008 04:12

Beitrag von .:M:. »

DarkDragon hat geschrieben:Quatsch. Atomic Webserver hat kein php.
Ich dachte auch es geht darum wie man ein Programm von einer Webseite aus starten kann, ich habe die Frage nur anders interpretiert.
Benutzeravatar
hardfalcon
Beiträge: 3447
Registriert: 29.08.2004 20:46

Beitrag von hardfalcon »

Wozu nen kompletten Webserver coden, nur um ein Webinterface zu bekommen? Warum nicht mit der Network-Library nen kleinen Server aufmachen, der lokal auf dem Rechner (sprich nur auf der IP 127.0.0.1) auf nem eigenen Port (z.B. 127.0.0.1:12345) läuft, und dann nen richtigen Webserver wie z.B: Apache oder lighttpd und PHP installieren, und ein kleines PHP-Script zusammenhacken, was über 127.0.0.1:12345 mit dem Programm, das du fernsteuern willst, interagiert? Über den Weg behälst du dein ganzes Programm schön modular, sprich du trennst das Frontend vom Backend, und kannst später, wenn du mal ein "richtiges" GUI für dein Tool haben willst, das ähnlich einfach zusammenhacken wie das PHP-Script fürs Webinterface.
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Beitrag von DarkDragon »

hardfalcon hat geschrieben:Wozu nen kompletten Webserver coden, nur um ein Webinterface zu bekommen? Warum nicht mit der Network-Library nen kleinen Server aufmachen, der lokal auf dem Rechner (sprich nur auf der IP 127.0.0.1) auf nem eigenen Port (z.B. 127.0.0.1:12345) läuft, und dann nen richtigen Webserver wie z.B: Apache oder lighttpd und PHP installieren, und ein kleines PHP-Script zusammenhacken, was über 127.0.0.1:12345 mit dem Programm, das du fernsteuern willst, interagiert? Über den Weg behälst du dein ganzes Programm schön modular, sprich du trennst das Frontend vom Backend, und kannst später, wenn du mal ein "richtiges" GUI für dein Tool haben willst, das ähnlich einfach zusammenhacken wie das PHP-Script fürs Webinterface.
Naja... Entweder er nimmt nen fertigen komplizierten Webserver, wo er erst noch PHP lernen muss/sollte oder eben CGIs kompilliert und überhaupt wie man das ganze einrichtet (XAMPP ist nicht zu empfehlen, da man vor den Sicherheitslücken nicht ausdrücklich gewarnt wird).

Wenn er den Atomic Webserver ein bisschen umschreibt hat er ja das Ziel erreicht.
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
Benutzeravatar
Bisonte
Beiträge: 2465
Registriert: 01.04.2007 20:18

Beitrag von Bisonte »

Könnte man nicht ... rein theoretisch, wenn Zeit dabei eine untergeordnete Rolle spielt....
das Steuerungsprogramm dahingehend erweitern, dass es in regelmäßigen Abständen (Da ist das Zeit Problem ;) )
versucht ein Textfile von einem Webspace zu laden und daraus die Werte liest...
die natürlich von einer HTML Seite per Formular vorher geschrieben wurde ?

Vielleicht ist das ein Ansatz. Daraufhin wäre es dann auch möglich die Seite mit Daten zu füttern,
oder das Steuerungsprogramm, ohne das man eigens einen Server ans netz hängen müsste.
Oder denk ich da jetzt zu quer ?
PureBasic 6.21 (Windows x86/x64) | Windows11 Pro x64 | AsRock B850 Steel Legend Wifi | R7 9800x3D | 64GB RAM | GeForce RTX 5080 | ThermaltakeView 270 TG ARGB | build by vannicom​​
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Beitrag von DarkDragon »

Bisonte hat geschrieben:Könnte man nicht ... rein theoretisch, wenn Zeit dabei eine untergeordnete Rolle spielt....
das Steuerungsprogramm dahingehend erweitern, dass es in regelmäßigen Abständen (Da ist das Zeit Problem ;) )
versucht ein Textfile von einem Webspace zu laden und daraus die Werte liest...
die natürlich von einer HTML Seite per Formular vorher geschrieben wurde ?

Vielleicht ist das ein Ansatz. Daraufhin wäre es dann auch möglich die Seite mit Daten zu füttern,
oder das Steuerungsprogramm, ohne das man eigens einen Server ans netz hängen müsste.
Oder denk ich da jetzt zu quer ?
Doch könnte man, aber wieso sollte man es so machen wenn der PC sowieso dauernd an sein muss? Außerdem wäre dann wie du schon sagtest ein Zeitverzug durchs Pollen.
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
Benutzeravatar
TobiasR
Beiträge: 19
Registriert: 16.08.2008 08:58
Wohnort: Nidda
Kontaktdaten:

Beitrag von TobiasR »

Hallo,

kann mir bitte mal jemand helfen!
Das Webserverprogramm ist ja ganz niedlich. Aber wie bekomme ich jetzt die Infos der Exe in das HTML Dokument und umgekert?

Tobias
Benutzeravatar
Deluxe0321
Beiträge: 336
Registriert: 19.05.2006 00:31
Kontaktdaten:

Beitrag von Deluxe0321 »

header auslesen?
Post / get?
"Content-Type"
rückfürend auf die funktionsweise würde ich im umkerschluss mal ein paar "http funktionen" die mit http komunizieren lesen und verstehen; davon gibt es einiges im Board (empfehlung Darkdargons http codebeispiele)
Toshy
Beiträge: 713
Registriert: 22.03.2005 00:29
Computerausstattung: Computer und Strom vorhanden
Wohnort: LK Wolfenbüttel

Beitrag von Toshy »

PHP liefert keine Websiten zurück, PHP KANN Websiten zurückliefern.

Im Grunde ist das PHPprogramm nichts anderes als ein PBprogramm. Kurz gesagt. Einzig das Script (was bei Purebasic der Quellcode wäre) macht den aus was passiert.
So kann PB einfach als Webserver genutzt werden indem man die Konsolenausgabe nutzt (sie PBhilfe).

Also was du vor hast ist einfach, aber dazu bleibt dir definitiv nichts anderes übrig als dich etwas mit der Programmierung von HTML (Formularen) auseinander zu setzten und den HTTPheadern. Dann darauf einfach einen Miniwebserver programmieren und fertig. Als Tip, es gibt hier irgendwo kleine Vorlagen für Webserver. Sind im Grunde nur wenige Zeilen um es zu teste.
Und du solltest den Webserver NICHT auf Port 80 nutzen, sondern einen anderne Port nehmen der nicht so oft gebraucht wird.
1. Win10
PB6.1
Benutzeravatar
chrizl
Beiträge: 60
Registriert: 31.08.2004 15:03
Wohnort: Pbg.
Kontaktdaten:

Beitrag von chrizl »

Also ist nun schon ne Zeit her, dass hier jemand was geschrieben hat, aber ich muss diesen Thread einfach noch einmal aufrufen.

Ich selber habe so etwas ähnliches auch vor, bzw. versuche halt eine Kommunikation zwischen PB und PHP zu erstellen.

Was ich hier aber empfehlen würde wäre,
1. nicht so sicher: einen eigenen Web-Server aufsetzen. Dazu am besten XAMPP installieren, damit hast du zumindest alle PHP-Möglichkeiten vorhanden. Sicherheitsproblem hierbei ist aber, dass du auf deinen PC zuhause zugreifen musst.
Dafür musst du eine dynamische IP haben und wenn dort jemand drauf Zugriff hat, kann er evtl. auch dein "internes" Netz hacken.

2. sicherer: Du erstellst auf einen Web-Server im Netz eine PHP-Seite mit Login. Dort trägst du deine Befehle ein, die dein Programm ausführen soll. Diese lässt du in eine Datenbank eintragen.
Anschließend liest du in einem bestimmten Zeitrüttmus mit deinem PB-Programm diese Datenbank aus. Dabei kann man diese Abfrage ja auch ruhig im Sekundentakt ausführen.
Vorteil hierbei ist natürlich, dass du für den DB-Zugriff ein Kennwort brauchst und niemand direkten Zugriff auf deinen PC bekommt.
Mit freundlichen Grüßen,
chrizl
Antworten