CGI-/Web-Programmierung mit Gambas

Alle Fragen zur Programmierung, die nicht in die speziellen Themen passen
Antworten
ramses
Foriker
Beiträge: 12
Registriert: So 11. Jan 2015, 15:35
Kontaktdaten:

CGI-/Web-Programmierung mit Gambas

Beitrag von ramses » So 11. Jan 2015, 17:03

Hallo,

ich würde mich gern in die CGI-/Web-Programmierung mit Gambas einarbeiten, vor allem in die Verarbeitung von HTML-Formularen mit Gambas. Die mitgelieferten Beispiele sind mir ein bisschen zu wenig, um einen Einstieg zu finden. Leider scheint das so gut wie nirgends dokumentiert zu sein. Ich habe schon einiges gegooglet, aber nichts Hilfreiches gefunden. Kann mir da jemand weiterhelfen?

tux_
Moderator
Beiträge: 950
Registriert: Di 11. Nov 2008, 20:05
Kontaktdaten:

Re: CGI-/Web-Programmierung mit Gambas

Beitrag von tux_ » So 11. Jan 2015, 17:20

Wenn deine allgemeine Gambas-Kenntnis schon recht ausgebaut ist, dann kannst du versuchen, einen Blick in den Quelltext von http://gambaswiki.org zu werfen. Diese Seite wird naemlich ueber ein Gambas-CGI-Projekt betrieben, dessen Quelltexte du u.a. hier[0] findest. Eine lokale Kopie des Projekts bekommst du, wenn du das SVN-Repositorium von Gambas herunterlaedst (s. [1]). Dort ist das Wiki-Projekt in app/src/gambas-wiki. (Falls du jetzt nur Bahnhof verstehst: keine Sorge; wir muessen ja auch erst einmal herausfinden, wie viel du weiszt, um einschaetzen zu koennen, wie wir mit dir zu reden haben.)

Falls du noch keine grosze Gambas-Erfahrung hast, hoffe ich, dass sich Honsek hier einmal zu Wort meldet. Wenn ich mich recht entsinne, hat er praktische Erfahrungen mit dem Ausfuehren von Gambas-Projekten als CGI-Skripte und der vorangehenden Konfiguration des Webservers. Das ist das Schritt 0. Danach koennen wir uns ueber die eigentliche CGI-Programmierung unterhalten.

[0] http://sourceforge.net/p/gambas/code/HE ... mbas-wiki/
[1] http://www.gambas-buch.de/dw/doku.php?id=k2:k2.4:start, der erste Teil zeigt dir, wie du die Quelltexte herunterlaedst.
Achtung: Es passiert, dass ich einen frisch geschrieben Beitrag innerhalb von 10 Minuten noch 3-4 Mal aendere!

ramses
Foriker
Beiträge: 12
Registriert: So 11. Jan 2015, 15:35
Kontaktdaten:

Re: CGI-/Web-Programmierung mit Gambas

Beitrag von ramses » So 11. Jan 2015, 17:46

Hallo tux,

danke für deine Antwort. Lass es mich mal so ausdrücken: Ich bin kein blutiger Anfänger, aber habe noch nicht viel Erfahrung mit Gambas. Ich programmiere seit etwa 30 Jahren in verschiedensten Sprachen, auch Webanwendungen. Insofern sind die Grundlagen vom Gambas und die prozedurale Programmierung für mich kein Neuland. Das kenne ich aus anderen Basic-Dialekten. Meine Schwächen liegen ganz klar im Bereich OOP und GUI-Programmierung, wobei man Letzteres sicher ja für Web-Programmierung eher nicht braucht.

Den Code des Wiki schau ich mir trotzdem mal an. Vielleicht kann ich ja was draus lernen. :-) Über Tipps, wie man den Webserver (hier Apache) dafür konfiguriert, bin ich natürlich auch dankbar. Unter normalen Umständen weiß ich das. Aber ich weiß von Free-Pascal-CGI-Programmierung, dass die Konfiguration tückisch sein kann.

ramses
Foriker
Beiträge: 12
Registriert: So 11. Jan 2015, 15:35
Kontaktdaten:

Re: CGI-/Web-Programmierung mit Gambas

Beitrag von ramses » So 11. Jan 2015, 18:52

Hmmm, ich habe mir jetzt den Code aus dem Commit runtergeladen, aber in app/src/gambas-wiki sind nur zwei Files mit Textinhalten, eine page- und eine password-Datei, und eine Bilddatei. Da ist leider kein Code.

tux_
Moderator
Beiträge: 950
Registriert: Di 11. Nov 2008, 20:05
Kontaktdaten:

Re: CGI-/Web-Programmierung mit Gambas

Beitrag von tux_ » So 11. Jan 2015, 19:23

Schon im versteckten Verzeichnis .src nachgesehen? Wenn du bereits Gambas installiert hast, kannst du dir das Projekt auch in der IDE ansehen.
Achtung: Es passiert, dass ich einen frisch geschrieben Beitrag innerhalb von 10 Minuten noch 3-4 Mal aendere!

ramses
Foriker
Beiträge: 12
Registriert: So 11. Jan 2015, 15:35
Kontaktdaten:

Re: CGI-/Web-Programmierung mit Gambas

Beitrag von ramses » So 11. Jan 2015, 19:29

tux_ hat geschrieben:Schon im versteckten Verzeichnis .src nachgesehen? Wenn du bereits Gambas installiert hast, kannst du dir das Projekt auch in der IDE ansehen.
Ah, gefunden, danke! Dann schau ich mir das mal an.

tux_
Moderator
Beiträge: 950
Registriert: Di 11. Nov 2008, 20:05
Kontaktdaten:

Re: CGI-/Web-Programmierung mit Gambas

Beitrag von tux_ » So 11. Jan 2015, 19:34

Nachtrag: siehe hier[0] fuer eine Erklaerung, warum das Quelltext-Verzeichnis versteckt ist. Manchen stiesz das sauer auf.

[0] http://comments.gmane.org/gmane.comp.la ... user/15160
Achtung: Es passiert, dass ich einen frisch geschrieben Beitrag innerhalb von 10 Minuten noch 3-4 Mal aendere!

ramses
Foriker
Beiträge: 12
Registriert: So 11. Jan 2015, 15:35
Kontaktdaten:

Re: CGI-/Web-Programmierung mit Gambas

Beitrag von ramses » So 11. Jan 2015, 22:10

Hallo nochmal,

der Blick in den Quelltext vom gambas-wiki hat mir sehr weitergeholfen. Danke für den Tipp. Ich hab erste Schritte hinbekommen. Ich bin einfach mal so frei zu beschreiben, was ich gemacht habe. Vielleicht hilft das anderen weiter.

Die Apache-Konfiguration ist völlg schmerzfrei und benötigt im Prinzip nur sowas wie:

Code: Alles auswählen

 ScriptAlias /cgi-bin/ /var/www/cgi-bin/
        <Directory "/cgi-bin">
                AllowOverride None
                Options +ExecCGI 
                Order allow,deny
                Allow from all
                AddHandler cgi-script .gambas
                SetHandler cgi-script
        </Directory>
Dann habe ich ein kleines Testscript geschrieben:
gambas code
#!/usr/bin/env gbs3
Use "gb.web"
Dim sNumber As String
Print "Content-type: text/html; charset=utf-8"
Print ""
Print ""
Print "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">"
Print "<head>"
Print "</head>"
Print "<body>"
Print "<form method=\"POST\" enctype=\"formdata/multi-part\">"
Print "<input type=\"text\" name=\"zahl\">"
Print "<input type=\"submit\">"
sNumber = Request["zahl"]
Print sNumber
Wichtig ist hier offenbar, Sub MAIN() und End wegzulassen. Damit hab ich zwei Stunden lang gekämpft, weil ständig kam "MMain.module:22: error: 'MAIN' already declared".

Dieses Script nun im cgi-bin z. B. unter CGI.gambas abspeichern, ihm den richtigen Owner und 755 als Rechte geben -> läuft.

Jetzt die Frage an die Experten: Ist das noch grundsätzlich verbesserungsbedürftig? Dass ich beim Request Daten im Produktivbetrieb auf Gültigkeit prüfen muss, ist mir klar. Das hab ich hier der Einfachheit halber weggelassen. Gibt es eurer Meinung nach sonst noch was zu beachten?
Zuletzt geändert von tux_ am So 11. Jan 2015, 23:34, insgesamt 3-mal geändert.
Grund: Immer schoen die richtigen Code-Tags verwenden

tux_
Moderator
Beiträge: 950
Registriert: Di 11. Nov 2008, 20:05
Kontaktdaten:

Re: CGI-/Web-Programmierung mit Gambas

Beitrag von tux_ » So 11. Jan 2015, 23:31

Das ist wirklich schoen zu hoeren.

Ich kann deine Affinitaet, wenn sie denn da ist, zu Skripten gut verstehen (fuer meine Zwecke sind sie viel handlicher als ganze Projekte), aber normalerweise wuerde man in der IDE ein ordentliches Gambas-Projekt anlegen. Wieso du hier das "Public Sub Main()" weglassen musstest, ist mir ad-hoc nicht klar.

Ich glaube, dass die Konfiguration eines HTTPD sogar entfallen kann, wenn man die Komponente gb.httpd einsetzt. Wenn du in der IDE arbeitest, dann geht das komfortabel ueber Menu Project -> Properties -> Options -> Use embedded HTTP server. (Vielleicht reicht in einem Skript ein Use "gb.httpd", aber damit habe ich keine Erfahrung.)

Auszerdem denke ich, du moechtest nicht jede Ausgabe an den HTTPD mit PRINT praefixen und zur Maskierung von Zeichen (z.B. Anfuehrungszeichen) innerhalb der ge-PRINT-eten Strings gezwungen sein, oder? Gambas hat sog. Webpages, die als Templates fuer Webseiten fungieren. Im gambas-wiki-Projekt gibt es z.B. die Datei Wiki.webpage, die... eine solche Webpage ist. Eine kleine Dokumentation dazu gibt es im Wiki[0].

Zuletzt schreibt man in Gambas3 die Instruktionen mit einem einzigen fuehrenden Groszbuchstaben und den Rest klein, also statt "PRINT" in Gambas3 lieber "Print".

[0] http://gambaswiki.org/wiki/doc/webpage
Achtung: Es passiert, dass ich einen frisch geschrieben Beitrag innerhalb von 10 Minuten noch 3-4 Mal aendere!

ramses
Foriker
Beiträge: 12
Registriert: So 11. Jan 2015, 15:35
Kontaktdaten:

Re: CGI-/Web-Programmierung mit Gambas

Beitrag von ramses » So 11. Jan 2015, 23:54

tux_ hat geschrieben: Ich kann deine Affinitaet, wenn sie denn da ist, zu Skripten gut verstehen (fuer meine Zwecke sind sie viel handlicher als ganze Projekte), aber normalerweise wuerde man in der IDE ein ordentliches Gambas-Projekt anlegen. Wieso du hier das "Public Sub Main()" weglassen musstest, ist mir ad-hoc nicht klar.
Vielleicht ist das Debian-spezifisch?
Ich glaube, dass die Konfiguration eines HTTPD sogar entfallen kann, wenn man die Komponente gb.httpd einsetzt. Wenn du in der IDE arbeitest, dann geht das komfortabel ueber Menu Project -> Properties -> Options -> Use embedded HTTP server. (Vielleicht reicht in einem Skript ein Use "gb.httpd", aber damit habe ich keine Erfahrung.)
Hmmm ... Diese Option in den Optionen fehlt bei mir.

webpages schau ich mir mal an, danke.

tux_
Moderator
Beiträge: 950
Registriert: Di 11. Nov 2008, 20:05
Kontaktdaten:

Re: CGI-/Web-Programmierung mit Gambas

Beitrag von tux_ » So 11. Jan 2015, 23:55

Welche Gambas-Version benutzt du? Aktuell ist 3.6.2...
Achtung: Es passiert, dass ich einen frisch geschrieben Beitrag innerhalb von 10 Minuten noch 3-4 Mal aendere!

ramses
Foriker
Beiträge: 12
Registriert: So 11. Jan 2015, 15:35
Kontaktdaten:

Re: CGI-/Web-Programmierung mit Gambas

Beitrag von ramses » Mo 12. Jan 2015, 00:02

tux_ hat geschrieben:Welche Gambas-Version benutzt du? Aktuell ist 3.6.2...
In Debian wheezy ist 3.1.1. Das ist halt das Problem bei Debian, alte Pakete. Ich glaube, ich will da erst mal selbst compilieren. ;-)

ramses
Foriker
Beiträge: 12
Registriert: So 11. Jan 2015, 15:35
Kontaktdaten:

Re: CGI-/Web-Programmierung mit Gambas

Beitrag von ramses » Mo 12. Jan 2015, 13:29

Das mit den webpages tut wunderbar. Genau das, was ich haben will, danke. :-)

GAMBAS
Foriker
Beiträge: 5
Registriert: Di 17. Mär 2020, 03:23
Kontaktdaten:

Re: CGI-/Web-Programmierung mit Gambas

Beitrag von GAMBAS » Do 9. Apr 2020, 03:57

Hi ramses,

das Ganze ist nun ne Weile her und vielleicht bist Du in dem Thema nicht mehr aktiv.
Falls doch, dann melde Dich bitte mal. Ich würde mich gerne mit Dir austauschen.

Danke schon mal.

Benutzeravatar
Honsek
Foriker
Beiträge: 418
Registriert: Do 4. Okt 2007, 17:01
Kontaktdaten:

Re: CGI-/Web-Programmierung mit Gambas

Beitrag von Honsek » Sa 11. Apr 2020, 18:40

Hallo GAMBAS,
wenn Ramses sich nicht (mehr) meldet, dann übernehme ich das mal.
Mit freundlichem Gruß
Honsek
Honsek (https://www.gambas-buch.de)
---> Wenn Du eine gute Antwort erwartest, musst Du sehr gut fragen!

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 3 Gäste