Realisierung eines Online-Ticketsystems mit PB

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
Kurzer
Beiträge: 1617
Registriert: 25.04.2006 17:29
Wohnort: Nähe Hamburg

Realisierung eines Online-Ticketsystems mit PB

Beitrag von Kurzer »

Hallo,

ich bin im Bereich Webprogrammierung nicht besonders bewandert.
Nun habe ich einen "Auftrag" oder eher eine zeitlich entspannte Anfrage bekommen, ob ich ein Mini-Ticketsystem programmieren könnte, welches auf einem Webserver läuft.

Das Ticketsystem soll folgende Funktionen aufweisen:
- Onlinebasiert, damit die Nutzung von überall aus mit einem Browser funktioniert
- Einfache Webmaske zur Erfassung eines GEschäftsvorfalls mit Datums-, Uhrzeit-, Combobox- und Textfeldern
- Speicherung des Vorfalls in einer Datenbank auf dem Webserver auf dem das ganze läuft
- Speicherung von Dokumenten, die zu einem Vorfall gehören, auf dem Server (oder alternativ in einem lokalen Verzeichnis)
- Export von Vorfällen als CSV, damit diese in Excel einer Statistikanalyse unterzogen werden kann

Ich finde das Projekt spannend, auch wenn ich noch nie mit PHP, CGI und Co. zu tun hatte. Zwar kann ich auf einem Webserver eine Datenbank einrichten und auch mit SQL und ein bisschen HTML umgehen, aber ich habe noch keine Onlineanwendungen programmiert und kenne auch das Zusammenspiel der verschiedenen Komponenten/Schnittstellen nicht.

Meine Frage ist, ob man so etwas realistisch angehen kann, auch wenn man kein Webentwickler ist. Meine Erfahrungen beschränken sich auf die Entwicklungen von Desktopanwendungen unter Windows mit ein bisschen HTML- und ausreichenden SQL-Kenntnissen.

Möglicherweise kann man Teile des Projekts ja auch mit Spiderbasic realisieren (wenn Spider denn mal auf meinem Win XP laufen würde, aber das ist eine andere Geschichte).

Mir sind die gesamten Zusammenhänge bei so einem Projekt noch nicht ganz klar, so dass ich den Aufwand und die Menge des neu zu lernenden Stoffes nicht abschätzen kann.

PureBasic hat ja die CGI Lib. Kann man damit dynamische Webseiten erstellen, so dass das System quasi lediglich aus der Datenbank und einer PureBasic Exe besteht, die auf dem Server läuft? Wie ist das überhaupt, wenn man eine Serveranwendung mit PB erstellt... bekomme ich heraus auf welchen Servern meine Exe überhaupt laufen wird? Für mich ist das alles noch blanke Theorie.

Es wäre super, wenn ich mich dazu mal mit einem Web-erfahrenen Programmierer kurzschließen könnte.

Gruß Kurzer
"Never run a changing system!" | "Unterhalten sich zwei Alleinunterhalter... Paradox, oder?"
PB 6.02 x64, OS: Win 7 Pro x64 & Win 11 x64, Desktopscaling: 125%, CPU: I7 6500, RAM: 16 GB, GPU: Intel Graphics HD 520
Useralter in 2024: 56 Jahre.
Benutzeravatar
man-in-black
Beiträge: 362
Registriert: 21.08.2006 17:39

Re: Realisierung eines Online-Ticketsystems mit PB

Beitrag von man-in-black »

Hi,

sowas kann man eigentlich recht einfach mit PHP realisieren.
(Andere Sprachen sind vielleicht "sicherer" etc, aber ich hab bisher nur mit PHP gewerkelt)

Sofern PHP vom Webserver unterstützt wird, ist der Aufwand eigentlich überschaubar.
Entweder du baust dir mit PHP die HTML Seite auf oder verlinkst dein Formular mit einer PHP-Datei.
Das Skript besteht dann einfach nur aus GET/POST/..., die dir die Formulareinträge holen
und der SQL Datenbankabfrage. Im Internet gibt es genug Codebeispiele.

MFG
MIB
(hab alles, kann alles, weiß alles!!^^)

Bild
Benutzeravatar
Kiffi
Beiträge: 10711
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: Realisierung eines Online-Ticketsystems mit PB

Beitrag von Kiffi »

Kurzer hat geschrieben:Möglicherweise kann man Teile des Projekts ja auch mit Spiderbasic realisieren (wenn Spider denn mal auf meinem Win XP laufen würde, aber das ist eine andere Geschichte).
ja, schade, dass es bei Dir nicht laufen will. Denn meines Erachtens wäre SB eine gute Lösung, mit der Du ohne HTML-, CSS- und JavaScript-Kenntnisse die Client-Seite (im Browser) abdecken könntest.

Und wer weiß: Vielleicht kommt eines Tage auch die nahtlose Integration von PB, um die Server-Seite programmieren zu können...

Grüße ... Peter
a²+b²=mc²
Benutzeravatar
dige
Beiträge: 1236
Registriert: 08.09.2004 08:53

Re: Realisierung eines Online-Ticketsystems mit PB

Beitrag von dige »

Schönes Projekt - und ganz klarer Fall für Pb2Web! :-D
Sowas habe ich damit schon oft realisiert, allerdings immer mit SQLite und
CGI auf einem Windows Server.

Ciao Dige
"Papa, ich laufe schneller - dann ist es nicht so weit."
Derren
Beiträge: 558
Registriert: 23.07.2011 02:08

Re: Realisierung eines Online-Ticketsystems mit PB

Beitrag von Derren »

Warum nutzt ihr denn nicht was vorhandenes?
Gut, wenn du die Herausforderung liebst, spricht nichts dagegen, aber meine Erfahrung sagt mir, dass "zeitlich entspannte" Aufträge nach einer gewissen Zeit dann doch drücken.

Für PB müsst ihr auch einen eigenen Server bereitstellen. Bei Webserver denk ich eher an die mietbaren Server auf denen PHP läuft. Da kannst du natürlich kein PB-Programm laufen lassen.
Signatur und so
Baba_Smurf
Beiträge: 55
Registriert: 01.03.2015 12:05
Wohnort: Saarland / Püttlingen
Kontaktdaten:

Re: Realisierung eines Online-Ticketsystems mit PB

Beitrag von Baba_Smurf »

Hallo,

wie Derren schon sagte, nutze doch etwas vorhandenes, wenn du im Inet suchst, findest du genügt PHP-Scripte, die den Anforderungen entsprechen, die du brauchst, diese musst du nur installieren, fertig. Niemand will freiwillig das Rad neu erfinden, ausser du bestehst unbedingt auf PB.

mfg
Benutzeravatar
Kurzer
Beiträge: 1617
Registriert: 25.04.2006 17:29
Wohnort: Nähe Hamburg

Re: Realisierung eines Online-Ticketsystems mit PB

Beitrag von Kurzer »

Moin,

jupp, danke für eure Hinweise.

Mittlerweile habe ich mir einen lokalen Webserver installiert (auch wegen der Problematik, dass SpiderBasic-Programme bei mir nicht aus der IDE heraus laufen (F5)).

Ich werde mir die nächste Zeit auf Arbeit mal PHP ansehen (sofern Cheffe mir dafür Zeit lässt), die Syntax scheint ja nicht so kompliziert zu sein (oder ich habe noch nicht den gesamten Sprachumfang überflogen ;) ). Das für mich schwierigste wird sein, zu verstehen wie das Zusammenspiel mit HTML und der gesamten Infrastruktur von Server und Client funktioniert. Mit fehlt diesbezüglich natürlich die Erfahrung, um beurteilen zu können wie man welches Problem am besten angeht und was es in puncto Sicherheit zu beachten gilt. Es soll ja niemand von außen Zugriff auf die Daten des Ticketsystems bekommen oder meine Scripte hacken.

Ich denke auch, dass ich mir das Frontend mit einem Webdesigner-Programm erstellen werde und die Funktionalität dann mittels PHP programmiere. Soweit ich das bei SpiderBasic gesehen habe, gibt es dort ja faktisch nur mittels HTTPRequest() die Möglichkeit mit einem serverseitigen Script zu kommunizieren - wobei ich mir das jetzt auch nur laienhaft aus den Beispielen der SB-Hilfe zusammengereimt habe.

@Derren: Danke für die Info, dass PB nicht auf einem gemieteten Webserver laufen wird. Das war mir auch nicht so ganz klar. Ich frage mich aber, wie man dann die CGI Lib in PB nutzt.

Nachtrag: Ich habe das ganze jetzt mal auf dem lokalen Webserver probiert.
- Im Dokumentenverzeichnis habe ich das Verzeichnis "perl" angelegt und dort eine Datei namens "perl.cgi" angelegt
Perl.cgi:

Code: Alles auswählen

#!"cgi-bin/test.exe"
- Im cgi-bin Verzeichnis das mit PB compilierte CGI Beispiel hinterlegt "test.exe"
test.pb:

Code: Alles auswählen

;
; ------------------------------------------------------------
;
;   PureBasic - CGI example file
;
;    (c) Fantaisie Software
;
; ------------------------------------------------------------
;

; To test it, you will need to compile it as an standalone executable and put it in the /cgi-bin/ folder of your
; webserver.
;

If Not InitCGI() Or Not ReadCGI()
  End
EndIf

WriteCGIHeader(#PB_CGI_HeaderContentType, "text/html", #PB_CGI_LastHeader) ; Write the headers to inform the browser of the content format

WriteCGIString("<html><title>PureBasic CGI</title><body>")  

Procedure WriteCGIConstant(Constant$)
  WriteCGIString(Constant$ + ": " + CGIVariable(Constant$)+"<br>")
EndProcedure

WriteCGIConstant(#PB_CGI_AuthType)
WriteCGIConstant(#PB_CGI_ContentLength)
WriteCGIConstant(#PB_CGI_HeaderContentType)
WriteCGIConstant(#PB_CGI_DocumentRoot)
WriteCGIConstant(#PB_CGI_GatewayInterface)
WriteCGIConstant(#PB_CGI_PathInfo)
WriteCGIConstant(#PB_CGI_PathTranslated)
WriteCGIConstant(#PB_CGI_QueryString)
WriteCGIConstant(#PB_CGI_RemoteAddr)
WriteCGIConstant(#PB_CGI_RemoteHost)
WriteCGIConstant(#PB_CGI_RemoteIdent)
WriteCGIConstant(#PB_CGI_RemotePort)
WriteCGIConstant(#PB_CGI_RemoteUser)
WriteCGIConstant(#PB_CGI_RequestURI)
WriteCGIConstant(#PB_CGI_RequestMethod)
WriteCGIConstant(#PB_CGI_ScriptName)
WriteCGIConstant(#PB_CGI_ScriptFilename)
WriteCGIConstant(#PB_CGI_ServerAdmin)
WriteCGIConstant(#PB_CGI_ServerName)
WriteCGIConstant(#PB_CGI_ServerPort)
WriteCGIConstant(#PB_CGI_ServerProtocol)
WriteCGIConstant(#PB_CGI_ServerSignature)
WriteCGIConstant(#PB_CGI_ServerSoftware)
WriteCGIConstant(#PB_CGI_HttpAccept)
WriteCGIConstant(#PB_CGI_HttpAcceptEncoding)
WriteCGIConstant(#PB_CGI_HttpAcceptLanguage)
WriteCGIConstant(#PB_CGI_HttpCookie)
WriteCGIConstant(#PB_CGI_HttpForwarded)
WriteCGIConstant(#PB_CGI_HttpHost)
WriteCGIConstant(#PB_CGI_HttpPragma)
WriteCGIConstant(#PB_CGI_HttpReferer)
WriteCGIConstant(#PB_CGI_HttpUserAgent)

WriteCGIString("</body></html>")
Das ganze funktioniert. Wenn ich im Browser "http://localhost/perl/perl.cgi" eingebe, dann wird die Exe ausgeführt und mir der Output im Browser angezeigt.

Code: Alles auswählen

AUTH_TYPE: 
CONTENT_LENGTH: 
Content-type: 
DOCUMENT_ROOT: C:/PortableApps/XAMPP-Portable/htdocs
GATEWAY_INTERFACE: CGI/1.1
PATH_INFO: 
PATH_TRANSLATED: 
usw...
Dann habe ich das mal auf meinem Webspace versucht. Klappt dort nicht (ich habe den Pfad zum "cgi-bin" entsprechend angepasst). Dort wird mir dann bei Aufruf der perl.cgi Datei lediglich der Inhalt der cgi Datei im Browser angezeigt:

Code: Alles auswählen

#!"{DOCROOT}/cgi-bin/test.exe"
Okay, es kann schon allein aus dem Grund nicht funktionieren, weil die test.exe eine 32 Bit Windows exe ist und der Server im Web auf einem 64 Bit Linux System läuft (sagt mir jedenfalls phpinfo() )
Angenommen die test.exe würde als 64 Bit Linux Programm kompiliert, sollte das ganze dann funktionieren?

Noch eine Frage: Gibt es empfehlenswerte PHP IDEs oder Entwicklungsumgebungen mit Autovervolständigung und eingebauter Hilfe oder coded man das einfach in einem Texteditor?

Gruß Kurzer
"Never run a changing system!" | "Unterhalten sich zwei Alleinunterhalter... Paradox, oder?"
PB 6.02 x64, OS: Win 7 Pro x64 & Win 11 x64, Desktopscaling: 125%, CPU: I7 6500, RAM: 16 GB, GPU: Intel Graphics HD 520
Useralter in 2024: 56 Jahre.
Benutzeravatar
man-in-black
Beiträge: 362
Registriert: 21.08.2006 17:39

Re: Realisierung eines Online-Ticketsystems mit PB

Beitrag von man-in-black »

Hi,

es gibt sicherlich spezielle PHP Editoren, aber ich nehm dafür immer PSPad (primär HTML Editor).
FTP, Comilerschnittstelle, Projektverwaltung, Code-Explorer (Methoden, Funktionen, Variablen),...
Schade finde ich aber, dass er keine Funktionen faltet (wie in der PB IDE).

edit: bullshit korrigiert^^

MFG
MIB
(hab alles, kann alles, weiß alles!!^^)

Bild
Derren
Beiträge: 558
Registriert: 23.07.2011 02:08

Re: Realisierung eines Online-Ticketsystems mit PB

Beitrag von Derren »

CGI wird oft auch nicht erlaubt. Und wenn dann oft nur Perl oder Ruby oder so. Keine Exe'n (oder Linux-Versionen, die meisten Webserver laufen ja unter Linux).

Hab mir die CGI-Lib noch nicht angesehen. Wenn CGI aktiviert ist (kannst du ja selber mal testen mit XAMPP auf deinem Rechner) kannst du solche Sachen machen: deinserver.tld/cgi/meinprogramm.exe?parameter=hallo Dafür braucht es imho keine spezielle Lib, aber wie gesagt hab ich mich nicht damit befasst. Vielleicht macht sie Sachen einfacher.
Hab mir grade dein Beispiel angesehen. Sie scheint zumindest die Ausgabe von HTML-Code an den Browser zu vereinfachen. Das ist doch schon mal was :)

Als Editor ist Notepad++ für den Anfang ziemlich gut und man kann vieles über Plugins nachrüsten. Die neueste Version hat auf jeden Fall Autoversvollsändigung drin. Wenn noch Fragen zur Benutzung einer Funktion auftreten einfach Alt+F1 drücken und es wird die entsprechende PHP-Hilfeseite im Browser aufgerufen.
Signatur und so
Benutzeravatar
Kurzer
Beiträge: 1617
Registriert: 25.04.2006 17:29
Wohnort: Nähe Hamburg

Re: Realisierung eines Online-Ticketsystems mit PB

Beitrag von Kurzer »

Hallo ihr beiden,

danke für die Tipps. Ich habe mir beide Editoren angesehen (und ein paar andere) und werde Notepad++ nutzen, weil ich damit vom Funktionsumfang und visuell am besten zurechtkomme. :allright:
"Never run a changing system!" | "Unterhalten sich zwei Alleinunterhalter... Paradox, oder?"
PB 6.02 x64, OS: Win 7 Pro x64 & Win 11 x64, Desktopscaling: 125%, CPU: I7 6500, RAM: 16 GB, GPU: Intel Graphics HD 520
Useralter in 2024: 56 Jahre.
Antworten