#!/usr/bin/perl use strict vars; use English; use Time::Local; use File::Basename; require 'urlencoding.pm'; #--------------------------------------------------------------------------------------------------------- #-- #-- E u r o r e c h n e r #-- #-- #-- Mit diesem Script werden Währungen umgerechnet. #-- Die Ausgabe kann WML oder HTML sein. #-- #-- #-- eurorechner.cgi #-- #-- 30.01.2000 SK Anpassung auf Wubsch #-- 20.12.1999 SK Erweiterungen #-- 17.12.1999 #-- #--------------------------------------------------------------------------------------------------------- #--------------------------------------------------------------------------------------------------------- # # Dateipfade und Basisverzeichnisse # #--------------------------------------------------------------------------------------------------------- my $CGIPATH = "/cgi-bin/"; my $CGIPROGRAM = basename($PROGRAM_NAME,""); #--------------------------------------------------------------------------------------------------------- my %CGI_Input = (); #--------------------------------------------------------------------------------------------------------- # Konstanten für die Umrechnung #--------------------------------------------------------------------------------------------------------- my $ATS = 13.7603; my $BEF = 40.3399; my $DEM = 1.9558; my $ESP = 166.3860; my $EUR = 1.0000; my $FIM = 5.9457; my $FRF = 6.5596; my $IEP = 0.7876; my $ITL = 1936.2700; my $LUF = 40.3399; my $NLG = 2.2037; my $PTE = 200.4820; #--------------------------------------------------------------------------------------------------------- # Variablen fuer Ergebnis (HTML/WML_Ausgabe) #--------------------------------------------------------------------------------------------------------- my $title = ""; my $scripting = "WML"; # Default #--------------------------------------------------------------------------------------------------------- # Variablen fuer Berechnungen #--------------------------------------------------------------------------------------------------------- my $Betrag = 0; my $Faktor_von = 0; my $Faktor_nach = 0; my $Ergebnis = 0; ########################################################################################################## if ($scripting eq "HTML") { &httpHeader(); } else { &wtpHeader(); } %CGI_Input = &ParseInput(); &Input_aufbereiten(\%CGI_Input); # Adresse wird übergeben # Test, ob überhaupt Parameter vorhanden sind if ($CGI_Input{Betrag} eq "") { if ($scripting eq "HTML") { &HTML_Formular(100, 0, "DEM", "EUR"); } else { &WML_Formular(100, 0, "DEM", "EUR"); } exit 0; # habe fertig! } # Einstellung des Scripings if ($CGI_Input{Scripting} eq "HTML") { $scripting = "HTML"; } elsif ($CGI_Input{Scripting} eq "WML") { $scripting = "WML"; } else { if ($scripting eq "HTML") { HTML_Fehlermeldung("Fehler", "Scripting unbekannt"); } else { WML_Fehlermeldung("Fehler", "Scripting unbekannt"); } } if ($CGI_Input{Betrag} > 0) { $Betrag = $CGI_Input{Betrag}; if ($CGI_Input{Von} eq 'ATS') { $Faktor_von = $ATS }; if ($CGI_Input{Von} eq 'BEF') { $Faktor_von = $BEF }; if ($CGI_Input{Von} eq 'DEM') { $Faktor_von = $DEM }; if ($CGI_Input{Von} eq 'ESP') { $Faktor_von = $ESP }; if ($CGI_Input{Von} eq 'EUR') { $Faktor_von = $EUR }; if ($CGI_Input{Von} eq 'FIM') { $Faktor_von = $FIM }; if ($CGI_Input{Von} eq 'FRF') { $Faktor_von = $FRF }; if ($CGI_Input{Von} eq 'IEP') { $Faktor_von = $IEP }; if ($CGI_Input{Von} eq 'ITL') { $Faktor_von = $ITL }; if ($CGI_Input{Von} eq 'LUF') { $Faktor_von = $LUF }; if ($CGI_Input{Von} eq 'NLG') { $Faktor_von = $NLG }; if ($CGI_Input{Von} eq 'PTE') { $Faktor_von = $PTE }; if ($CGI_Input{Nach} eq 'ATS') { $Faktor_nach = $ATS }; if ($CGI_Input{Nach} eq 'BEF') { $Faktor_nach = $BEF }; if ($CGI_Input{Nach} eq 'DEM') { $Faktor_nach = $DEM }; if ($CGI_Input{Nach} eq 'ESP') { $Faktor_nach = $ESP }; if ($CGI_Input{Nach} eq 'EUR') { $Faktor_nach = $EUR }; if ($CGI_Input{Nach} eq 'FIM') { $Faktor_nach = $FIM }; if ($CGI_Input{Nach} eq 'FRF') { $Faktor_nach = $FRF }; if ($CGI_Input{Nach} eq 'IEP') { $Faktor_nach = $IEP }; if ($CGI_Input{Nach} eq 'ITL') { $Faktor_nach = $ITL }; if ($CGI_Input{Nach} eq 'LUF') { $Faktor_nach = $LUF }; if ($CGI_Input{Nach} eq 'NLG') { $Faktor_nach = $NLG }; if ($CGI_Input{Nach} eq 'PTE') { $Faktor_nach = $PTE }; $Ergebnis = ($Betrag*$Faktor_nach)/$Faktor_von; # Runden $Ergebnis = int($Ergebnis*100)/100; #print "= $Ergebnis"; if ($scripting eq "HTML") { &HTML_Formular($Betrag, $Ergebnis, $CGI_Input{Von}, $CGI_Input{Nach}); } else { # &HTML_Start("Eurorechner"); &WML_Formular($Betrag, $Ergebnis, $CGI_Input{Von}, $CGI_Input{Nach}); # &HTML_Abschluss(); } } else { if ($scripting eq "HTML") { &HTML_Start("Eurorechner"); print "Bitte Betrag > 0 eingeben
\n"; &HTML_Abschluss(); } else { &WML_Start("Eurorechner"); print "\n"; print "Bitte Betrag > 0 eingeben
\n"; print "
\n"; &WML_Abschluss(); } } exit 0; # habe fertig! #-------------------------------------------------------------------------------------------------------- #-- #-- Eingabe analysieren #-- #-------------------------------------------------------------------------------------------------------- sub ParseInput { my $in; # print TEST "ParseInput: "; if ($ENV{'REQUEST_METHOD'} eq "GET") { $in = $ENV{'QUERY_STRING'}; } elsif ($ENV{'REQUEST_METHOD'} eq "POST") { read(STDIN,$in,$ENV{'CONTENT_LENGTH'}); } # print TEST "$in\n"; $in =~ s/required(.*?)={1}/$1=/g; # print TEST "Input: "; # print TEST "$in\n"; return URLEncoding::parse_cgi($in); } #-------------------------------------------------------------------------------------------------------- #-- #-- CGI_Input aufbereiten #-- #-------------------------------------------------------------------------------------------------------- sub Input_aufbereiten { my ($input) = @_; my $key; foreach $key (keys %$input) { $$input{$key} =~ s/\0/,/g; # maskierte '\0' in ',' aendern } $$input{von} = uc $$input{von}; # upcase $$input{nach} = uc $$input{nach}; } #-------------------------------------------------------------------------------------------------------- #-- http-Header #-------------------------------------------------------------------------------------------------------- sub httpHeader { print "Pragma: no-cache\n"; print "Expires: now\n"; print "Content-type: text/html\n\n"; } #-------------------------------------------------------------------------------------------------------- #-- wtp-Header #-------------------------------------------------------------------------------------------------------- sub wtpHeader { print "Pragma: no-cache\n"; print "Expires: now\n"; print "Content-type: text/vnd.wap.wml\n\n"; } #-------------------------------------------------------------------------------------------------------- #-- HTML-Start #-------------------------------------------------------------------------------------------------------- sub HTML_Start { my ($title) = @_; print "\n"; print "\n"; print "$title\n"; print "\n"; print "\n"; print "\n"; } #-------------------------------------------------------------------------------------------------------- #-- HTML-Abschluss #-------------------------------------------------------------------------------------------------------- sub HTML_Abschluss { print "\n"; print "\n"; } #-------------------------------------------------------------------------------------------------------- #-- WML-Start #-------------------------------------------------------------------------------------------------------- sub WML_Start { print "\n"; print "\n"; print "\n"; } #-------------------------------------------------------------------------------------------------------- #-- WML-Abschluss #-------------------------------------------------------------------------------------------------------- sub WML_Abschluss { print "\n"; } #-------------------------------------------------------------------------------------------------------- #-- HTML-Fehlermeldung #-------------------------------------------------------------------------------------------------------- sub HTML_Fehlermeldung { my ($titel, $meldung) = @_; &HTML_Start($titel); print "$meldung\n"; &HTML_Abschluss(); } #-------------------------------------------------------------------------------------------------------- #-- WML-Fehlermeldung #-------------------------------------------------------------------------------------------------------- sub WML_Fehlermeldung { my ($titel, $meldung) = @_; &WML_Start; print "\n"; print "

\n"; print "$meldung\n"; print "

\n"; print "
\n"; &WML_Abschluss(); } #-------------------------------------------------------------------------------------------------------- #-- Ausgabe von Eingabeformular #-------------------------------------------------------------------------------------------------------- sub HTML_Formular { my ($betrag, $ergebnis, $von, $nach) = @_; my @waehrungen = ("ATS","BEF","DEM","ESP","EUR","FIM","FRF","IEP","ITL","LUF","NLG","PTE"); my $waehrung; print "\n"; print "\n"; print "\n"; print "\n"; print "Eurorechner\n"; print "\n"; print "\n"; print "

Eurorechner

\n"; print "
\n"; print ""; print "Betrag
\n"; print "
\n"; print "Von
\n"; print "
\n"; print "Nach
\n"; print "
\n"; print "= $ergebnis
\n"; print "

\n"; print "
\n"; print "\n"; print "\n"; } #-------------------------------------------------------------------------------------------------------- #-- Ausgabe von Eingabeformular #-------------------------------------------------------------------------------------------------------- sub WML_Formular { my ($betrag, $ergebnis, $von, $nach) = @_; my @waehrungen = ("ATS","BEF","DEM","ESP","EUR","FIM","FRF","IEP","ITL","LUF","NLG","PTE"); my $waehrung; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "

\n"; print "Betrag: \n"; print "Von: \n"; print "Nach: \n"; print "= $ergebnis
\n"; # Variable von Perl eingesetzt print "Umrechnen\n"; # Variable nicht von Perl eingesetzt print "Hilfe\n"; print "\n"; print "\n"; print "\n"; print "

\n"; print "
\n"; print "\n"; print "

\n"; print "WAP-Eurorechner
\n"; print "Version 1.1
\n"; print "© 2000, WubscH\n"; print "

\n"; print "
\n"; print "
\n"; }