Am Donnerstag 12 Oktober 2006 21:06 schrieb Stefan Bauer:
> Hallo Liste,
>
> zu später Stunde mal eine Frage, welche mich ziemlich auf Trapp
> hällt.
>
> Ich plane hier zu Testzwecken, über eine Web-Schnittstelle Eingaben
> von Benutzern entgegen zu nehmen, diese dann lokal mit Perl etc.
> auszuwerten und aufzubereiten und dem User wieder zur Verfügung zu
> stellen.
>
Mh...und warum lokal?
Vielleicht verstehe ich dich falsch, aber du willst in einem Formular
etwas von jemanden über das Web eingeben lassen, diese Daten
verändern und wieder ausgeben, richtig?
> Hierzu vewende ich Apache 1.3.x sowie mod_perl und cgi-lib.pl[1] in
> meinem Script[2] auf einer Debian-stable Kiste.
>
Warum cgi-lib ?
> Leider schaffe ich es nicht, innerhalb des Scripts einfache
> subroutinen einzubauen, welche z.b eine Datei zum Schreiben öffnen
> und eine zuvor definierte Variable dort hineinschreiben weil es
> irgendwie ignoriert wird.
>
> Mein konkreter Versuch war:
>
>
> sub aufruf {
> open (TEST, ">> /home/sb/public_html/test/ausgabe-datei");
> print TEST "$Vorname";
> close (TEST);
> }
>
Einfach mal das Script was weiter unten folgt anschauen und dann diese
Routine einbauen. Sollte funktionieren. Ich hab auch paar Kommentare
eingefügt. Aber so wies aussieht ist dir Perl ja nicht ganz fremd ;).
Also ich würde das so machen, ohne den ganzen cgi-lib Kram:
#!/usr/bin/perl -w
use strict;
use CGI qw(:standard);
print header(-charset => 'ISO-8859-15');
print start_html(-head=>meta({-http_equiv => 'Content-Type',
-content=> 'text/html;
charset=iso-8859-15'}));
print h1("Wie gehts Erdling?");
if(param()) {
#Wenn Parameter vorhanden, dann mache was
#Eingaben aus Textfeldern lesen (input name.)
my $name = param("name");
my $sorte = param("sorte");
my $kugeln = param("kugeln");
# Damit was machen...
# Aufbereiten oder sonst was
my $preis = $kugeln * 0.5;
#Meinetwegen auch ein open(OUT, ">>$datei");
# Oder deine sub-Routine
# print OUT $sorte;
#Oder eben eine Ausgabeseite
print "Hallo $name!";
print "";
print "Sie haben $kugeln Kugeln $sorte bestelllt. Das kostet sie
$preis €";
} else {
#Wenn keine Parameter vorhanden, dann Formular zu Verfügung stellen
print hr();
print start_form();
print p("Wie heißen sie? ", textfield("name"));
print p("Welche Eissorte darf es sein? ", popup_menu("sorte",
['Schoko', 'Kirsche', 'Vanille']));
print p("Wie viel Kugeln? ", popup_menu("kugeln", [1..4]));
print p(submit("Bestellen"));
print end_form();
print hr();
}
print end_html();
>
> Danke im Voraus
>
Tschau
Sandro