[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Verständnisfrage cgi-lib.pl - Apache + mod_perl



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 "<br>";
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



Reply to: