Überblick: Web-Intefaces, CGI-Programme, Webseitengenrierung

Fragen zum Thema HTML, JavaScript, PHP
Benutzeravatar
fat-lobyte
Beiträge: 1398
Registriert: Sa Jul 05, 2008 12:23 pm
Wohnort: ::1
Kontaktdaten:

Überblick: Web-Intefaces, CGI-Programme, Webseitengenrierung

Beitrag von fat-lobyte » Sa Aug 13, 2011 11:18 am

Hallo!
Zu meiner Schande muss ich gestehen dass ich relativ blank bin, was Web-Programmierung angeht. Bisher hat sich einfach nicht die Notwendigkeit ergeben.
Jetzt möchte ich allerdings ein Projekt beginnen und sehe zurzeit den Wald vor lauter bäumen nicht.

Die Aufgabe ist folgende:
Auf einer Webseite soll man Daten eingeben und Optionen setzen können. Die Daten sollen verarbeitet werden, und mit ihnen und den Optionen sollen Programme gefüttert werden (Wahrscheinlich sind diese in C). Die Ausgabe der Programme soll aufbereitet werden und als Webseite dargestellt werden.

Der Server selbst wird wahrscheinlich Linux (Debian,Ubuntu?) werden.
Die Auswahl der Tools ist frei, sie sollten aber frei oder zumindest gratis benutzbar sein.

Mit welchen Sprachen und Tools macht man das nun am Besten? Wie reicht man die Eingabe in der Webseite an die Programme weiter, wie ruft man sie überhaupt auf? Werden dieselben Daten mehrmals eingegeben, gibt es eine Möglichkeit die ausgaben der Programme zu speichern und sie nicht noch einmal laufen zu lassen?
Wie wird dann am besten die Webseite generiert?
Wenn es verschiedene Möglichkeiten der Anzeige gibt, ist es möglich die Anzeigen im Webbrowser des Users zu verändern, und nicht die Seite neu zu generieren? (da gabs irgend so ein AJAX ding?)
Ein kleiner Überblick wäre sehr hilfreich, da ich im Moment echt keinen Plan habe, wie das ganze anzugehen ist.

Danke im voraus,
lg, fat-lobyte
Haters gonna hate, potatoes gonna potate.

Benutzeravatar
naums
Beiträge: 740
Registriert: Sa Jan 02, 2010 10:40 pm
Kontaktdaten:

Re: Überblick: Web-Intefaces, CGI-Programme, Webseitengenrie

Beitrag von naums » Sa Aug 13, 2011 11:30 am

Ich würde dazu PHP verwenden. Die Daten, die du eingeben lassen willst: das ist ein einfaces Formular lässt sich ohne jeden schnick-schnack mit HTML lösen. Schaust du hier: http://de.selfhtml.org/html/formulare/index.htm

Die Daten zu verarbeiten: dazu wirst du PHP brauchen, Mach mit den Daten was du willst und ruf dann shell_exec() auf. Das sollte ein Programm (was mit der Konsole ansteuerbar ist) auf dem Server ausführen. Schaust du hier: http://www.php.net/manual/de/function.shell-exec.php

Und das zeug wieder anzeigen lassen. Entweder du speicherst die Ausgaben (shell_exec liefert die Ausgaben des Programmes zurück) in eine Datenbank oder in eine Datei, das ist vollkommen egal. Von der Verarbeitung leitest du weiter auf die Ergebnis-seite, die einfach eine $id mitgeliefert bekommt (zb. so: resultate.php?id=1). Dann lädst du den Resultattext mit der ID 1 und gibst den aus.

MfG Naums
.globl truth
truth:
mov r0, #42
mov pc, lr

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8859
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: Überblick: Web-Intefaces, CGI-Programme, Webseitengenrie

Beitrag von Xin » Sa Aug 13, 2011 12:23 pm

Du wirst PHP hassen - zu Recht. Aber für mal eben Schnell-Schnell ist es eben das einfachste.
Sollte das Projekt größer als 10-20 Seiten werden, kann man über Alternativen nachdenken, sonst lohnt das eigentlich nicht.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Benutzeravatar
fat-lobyte
Beiträge: 1398
Registriert: Sa Jul 05, 2008 12:23 pm
Wohnort: ::1
Kontaktdaten:

Re: Überblick: Web-Intefaces, CGI-Programme, Webseitengenrie

Beitrag von fat-lobyte » Sa Aug 13, 2011 1:20 pm

naums hat geschrieben:Ich würde dazu PHP verwenden.
...
Danke für die Anregung! Ich denke drüber nach.
Wie würde das aussehen, wenn ich die Eingaben und Ausgaben noch ein bisschen verarbeitet werden, nehmen wir mal mit anderen Sprachen als PHP, z.B. Python, wie würde das dann aussehen? Wäre das dann ebenfalls ein shell_exec() Befehl?
Xin hat geschrieben:Du wirst PHP hassen - zu Recht. Aber für mal eben Schnell-Schnell ist es eben das einfachste.
Sollte das Projekt größer als 10-20 Seiten werden, kann man über Alternativen nachdenken, sonst lohnt das eigentlich nicht.
Nehmen wir mal an, es wird größer als diese 10-20 Seiten tatsächlich vermeiden und ich will PHP. Welche möglichkeiten gibts da?
Haters gonna hate, potatoes gonna potate.

nufan
Wiki-Moderator
Beiträge: 2558
Registriert: Sa Jul 05, 2008 3:21 pm

Re: Überblick: Web-Intefaces, CGI-Programme, Webseitengenrie

Beitrag von nufan » Sa Aug 13, 2011 1:44 pm

fat-lobyte hat geschrieben:
naums hat geschrieben:Ich würde dazu PHP verwenden.
...
Danke für die Anregung! Ich denke drüber nach.
Wie würde das aussehen, wenn ich die Eingaben und Ausgaben noch ein bisschen verarbeitet werden, nehmen wir mal mit anderen Sprachen als PHP, z.B. Python, wie würde das dann aussehen? Wäre das dann ebenfalls ein shell_exec() Befehl?
In Perl würde das Auffangen der Ausgabe einfach so aussehen:

Code: Alles auswählen

my $output = `ls`;
Nun ist die Ausgabe von "ls" in der Variable $output gespeichert.
Für größere Programme ist Perl natürlich eher ungeeignet. Andererseits können Programme damit auch deutlich kürzer werden, vor allem wenns um Textverarbeitung geht.

Code: Alles auswählen

while( <> ) { print( join( " ", reverse( split( " " ) ) ) . "\n" ); }
Obiger Code gibt z.B. den Inhalt aller per Kommdazeilenparameter übergebenen Dateien aus, zeilenweise rückwärts ^^

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8859
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: Überblick: Web-Intefaces, CGI-Programme, Webseitengenrie

Beitrag von Xin » So Aug 14, 2011 1:22 pm

fat-lobyte hat geschrieben:
Xin hat geschrieben:Du wirst PHP hassen - zu Recht. Aber für mal eben Schnell-Schnell ist es eben das einfachste.
Sollte das Projekt größer als 10-20 Seiten werden, kann man über Alternativen nachdenken, sonst lohnt das eigentlich nicht.
Nehmen wir mal an, es wird größer als diese 10-20 Seiten tatsächlich vermeiden und ich will PHP. Welche möglichkeiten gibts da?
Zwei Wörter aus dem Satz fallen durch die Syntax-Analyse... die ignoriere ich mal.

Wenn Du PHP willst, dann ist Dir nicht mehr zu helfen ;-D

Nun schiebe ich die zwei Wörter mal ganz nach hinten:
fat-lobyte hat geschrieben:Nehmen wir mal an, es wird größer als diese 10-20 Seiten und ich will PHP tatsächlich vermeiden . Welche möglichkeiten gibts da?
So auf direkter Linie Ruby, Python, Perl.

Perl ist eigentlich nur dann interessant, wenn Du mit Strings arbeitest, ansonsten nehme ich auch eher PHP. ;)
Python ist recht bekannt geworden und grundsätzlich auch etwas sauberer. Mir persönlich sagte es im großen Ganzen nicht so zu, es hat aber einige sehr hübsche Konstrukte, die mich an Genesys erinnern.
Ruby kenne ich selbst noch nicht, Ruby On Rails wurde mir seinerzeit mal als der Gral der Webprogrammierung verkauft, mit Fortschreiten der Website folgte aber Ernüchterung, weil man am Schluss dann doch vergleichbare Probleme bekam. Ich habe das nicht wirklich verfolgt, es war wohl halt nur doch nicht der Gral und je höher die Erwartungen, desto größer die Enttäuschung. Trotzdem kann Ruby ein gutes Werkzeug sein.

Und dann komme ich so langsam mit dem neuen Proggen.Org-CMS ins Spiel: C++.

Du kannst native Programme über CGI auf dem Server ausführen lassen und die Website dann einfach auf die Standardausgabe pfeffern. Es gibt auch einige Libs dafür, insbesondere GET und POST-Variablen muss man ja erstmal in die Finger bekommen. Das weiß ich im Detail gar nicht mehr so genau, ich habe mich ja für den Aufbau eines eigenen HTTP-Services entschieden. Das wiederum ist dann allerdings der endgültige Overkill - dafür habe ich alles jederzeit in meinen eigenen Datenstrukturen und das war's mir wert :-)
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Panke
Beiträge: 70
Registriert: So Nov 14, 2010 10:47 am

Re: Überblick: Web-Intefaces, CGI-Programme, Webseitengenrie

Beitrag von Panke » So Aug 14, 2011 2:40 pm

In Python (und in PHP ab einer gewissen Seitengröße wohl auch) würde man direkt auf ein Webframework zurückgreifen. Das bekannteste ist da Django, eine schlankere Alternative ist Bottle, mit dem ich aber selber noch nie gearbeitet habe.

Django liefert gleich eine Template-Sprache für die HTML-Seiten und ein ORM
mit. Das gibts aber mit SQLAlchemy und Jinja2 auch einzeln. Es hat aber auch noch
einen automatischen Admin-Bereich, der ziemlich gut und nützlich ist.

Programme auf dem Webserver würde man in Python wohl mit dem Modul subprocess starten.

Benutzeravatar
fat-lobyte
Beiträge: 1398
Registriert: Sa Jul 05, 2008 12:23 pm
Wohnort: ::1
Kontaktdaten:

Re: Überblick: Web-Intefaces, CGI-Programme, Webseitengenrie

Beitrag von fat-lobyte » So Aug 14, 2011 9:11 pm

Xin hat geschrieben:Zwei Wörter aus dem Satz fallen durch die Syntax-Analyse... die ignoriere ich mal.
Tippen + am Touchpad ankommen = falsche Reihenfolge :-)
Perl ist eigentlich nur dann interessant, wenn Du mit Strings arbeitest
Das ist durchaus interessant, weil ich tatsächlich hauptsächlich mit Strings arbeite. Es geht um Sequenzdaten, die in Programme gefüttert werden und der Output der Programme soll "standardisiert" angezeigt werden.
Aus meinem Halbwissen erinnere ich mich mal irgendwo gelesen zu haben, dass Perl auch schon in die Jahre gekommen ist und nicht die hübscheste aller Sprachen ist. Ist das wahr?
Python ist recht bekannt geworden und grundsätzlich auch etwas sauberer. Mir persönlich sagte es im großen Ganzen nicht so zu, es hat aber einige sehr hübsche Konstrukte, die mich an Genesys erinnern.
Python wäre Interessant, unter anderem weil schon ein wenig Code in Python existiert. Damit kann man also auch Webseiten erzeugen, sagt ihr?
Ruby kenne ich selbst noch nicht, Ruby On Rails wurde mir seinerzeit mal als der Gral der Webprogrammierung verkauft, mit Fortschreiten der Website folgte aber Ernüchterung, weil man am Schluss dann doch vergleichbare Probleme bekam. Ich habe das nicht wirklich verfolgt, es war wohl halt nur doch nicht der Gral und je höher die Erwartungen, desto größer die Enttäuschung. Trotzdem kann Ruby ein gutes Werkzeug sein.
Ich werds mir trotzdem mal ansehen. Was hätte denn so toll daran sein sollen, und wo liegen denn doch die Programme?
Du kannst native Programme über CGI auf dem Server ausführen lassen und die Website dann einfach auf die Standardausgabe pfeffern.
Hä? Wie funktioniert das? Was passiert dann mit der gerade angezeigten webseite? Wird man da weitergeleitet oder wie? Kennt jemand ein Beispiel dafür?
Panke hat geschrieben:In Python (und in PHP ab einer gewissen Seitengröße wohl auch) würde man direkt auf ein Webframework zurückgreifen. Das bekannteste ist da Django, eine schlankere Alternative ist Bottle, mit dem ich aber selber noch nie gearbeitet habe.
Ok, ich kucks mir mal an, danke.

Django liefert gleich eine Template-Sprache für die HTML-Seiten und ein ORM mit. Das gibts aber mit SQLAlchemy und Jinja2 auch einzeln. Es hat aber auch noch
einen automatischen Admin-Bereich, der ziemlich gut und nützlich ist.

Öllis liefert gleich eine Krumfu-Sprache für die YLLQ-Seiten und ein WTF mit. Das gibts aber mit KOQuasimo und Tota4 auch einzeln. Es hat aber auch noch
einen automatischen Admin-Bereich, der ziemlich gut und nützlich ist.
;)
Sorry, gibts den Satz auch für Doofe?
Programme auf dem Webserver würde man in Python wohl mit dem Modul subprocess starten.
Ok, danke, das ist hilfreich!
Haters gonna hate, potatoes gonna potate.

Benutzeravatar
cloidnerux
Moderator
Beiträge: 3123
Registriert: Fr Sep 26, 2008 4:37 pm
Wohnort: Ram (Gibts wirklich)

Re: Überblick: Web-Intefaces, CGI-Programme, Webseitengenrie

Beitrag von cloidnerux » So Aug 14, 2011 9:27 pm

Damit kann man also auch Webseiten erzeugen, sagt ihr?
Für apache: mod_phython ist deine Lösung

Ansonsten bietet auch PHP eine Möglichkeit Programme aufzurufen.
Per AJAX kann man Daten live senden und Javascript generiert die Daten, so macht es z.B auch Facebook oder Google+, sowie sehr viele andere Seiten.

just my 2 cents

MfG cloidnerux
Redundanz macht wiederholen unnötig.
quod erat expectandum

Benutzeravatar
fat-lobyte
Beiträge: 1398
Registriert: Sa Jul 05, 2008 12:23 pm
Wohnort: ::1
Kontaktdaten:

Re: Überblick: Web-Intefaces, CGI-Programme, Webseitengenrie

Beitrag von fat-lobyte » So Aug 14, 2011 9:49 pm

cloidnerux hat geschrieben:
Damit kann man also auch Webseiten erzeugen, sagt ihr?
Für apache: mod_phython ist deine Lösung

Ansonsten bietet auch PHP eine Möglichkeit Programme aufzurufen.
Per AJAX kann man Daten live senden und Javascript generiert die Daten, so macht es z.B auch Facebook oder Google+, sowie sehr viele andere Seiten.

just my 2 cents
Danke, das waren gute 2 cent.
Ich glaube ich sollte nun anfangen mir die ganzen Tools genauer anzusehen.
Haters gonna hate, potatoes gonna potate.

Antworten