James: Tabellenformatierung in Javascript

Beitrag lesen

Hi,

wenn du mal ins CGI Script looken willst:

#!/usr/bin/perl

Setzt den benötigten MIME-Type. Normalerweise sollte hier nichts geändert werden.

$content_type   = "Content-Type: text/html\n\n";

Hier den Unix-Pfad zu den Forumularen angeben. Dieser Pfad wird den angegebenen

Formularen vorangestellt. Das Verzeichnis sollte dort sein, wo sich auch die HTML-Dateien

befinden, nicht aber im CGI-BIN Verzeichnis, bzw. in dortigen Unterverzeichnissen!

$base_path      = '../mailform/';

Befehl zum laden des Mailers, welcher unbedingt den STDIN-Standard unterstützen sollte!

$mail_cmd       = '/usr/sbin/sendmail -t';

Hier kann festgeelgt werden, welcher Server, oder welche Seiten auf dieses

Script zugreifen darf. Dabei können ganze URL's angegeben werden oder auch

global ganze Server (ist meist das sinnvollste). Es ist sinnvoll die Angaben

mit UND ohne vorangestelltem www zu machen. Es sei denn, der Server ist sowieso

nicht erreichbar ohne www. vorweg.

Alternativ kann hier auch eine IP angegeben werden. Alle Einträge sind in ' Hochkommas '

zu setzen, und werden in einer Liste mit Kommas getrennt.

@Referers       = ('www.drexler-leeb.at');

AB HIER NICHTS MEHR ÄNDERN, WENN DU NICHT GENAU WEISST

##                   WAS DU MACHST!                       ##

$error_loop     = 0; $browser_out    = 0;

if ($ENV{'REQUEST_METHOD'} eq 'GET' and not $ENV{'QUERY_STRING'})     {     $ENV{'OUT_TITLE'} = "AlienForm2 deutsch Releas 9/98";     $ENV{'OUT_MSG'}   = qq|Die letzte deutsche Version ist erhaeltlich bei <a href="http://www.internet-partner.de">Internet-Partner.de.|;     @msg = (<DATA>);     @msg = ParseText(@msg);     BrowserOut(@msg);     exit(0);     } &CheckRef; &ParseForm;

if (@missing_values or @bad_emails or @only_digits or @only_words) { Error('evil values') }

foreach $key (keys %FORM)     {     if ($key =~ /^_send_email/)         {         @lines = ReadFile('Email Template',$FORM{$key});         @lines = ParseText(@lines);         SendMail(@lines);         }     elsif ($key =~ /^_out_file/)         {         @lines = ReadFile('Log File',$FORM{$key});         @lines = ParseText(@lines);         LogFile('LogFile Template',@lines);         }     elsif ($key =~ /^_browser_out/ and $browser_out < 2)         {         $browser_out++;         @lines = ReadFile('Browser Template',$FORM{$key});         @lines = ParseText(@lines);         BrowserOut(@lines);         }     elsif ($key =~ /^_redirect/ and $browser_out < 2)         {         $browser_out++;         print "Location: $FORM{$key}\n\n";         }     }

unless ($browser_out)     {     @msg = (<DATA>);     $ENV{'OUT_TITLE'} = "Übertragung erfolgreich";     $ENV{'OUT_MSG'}   = "Deine eingaben waren erfolgreich, vielen Dank";     @msg              = ParseText(@msg);     BrowserOut(@msg);     }

exit(0);

sub BrowserOut     { print "$content_type@_\n" }

sub uhrzeit { @wochentag = ('Sonntag','Montag','Dienstag','Mittwoch','Donnerstag','Freitag','Samstag'); ($sek, $min, $stun, $tag, $monat, $jahr, $wtag) = localtime(time); $datum = "$stun:$min:$sek"; $ENV{'DATE_GMT'} = $datum;

}

sub CheckRef     {     my ($valid_referer, @terms);     if ((@Referers) and ($ENV{'HTTP_REFERER'}))         {         foreach $referer (@Referers)             {             if ($ENV{'HTTP_REFERER'} =~ m|http.*?://$referer|i)                 {                 $valid_referer++;                 last;                 }             }          }     else {$valid_referer++;}     unless ($valid_referer)         {         @terms = split(///,$ENV{'HTTP_REFERER'});         Error             (             'Falscher Server',             "'$ENV{'HTTP_REFERER'}' ist nicht autorisiert zur Verwendung des Scripts. Wenn du eine Erlaubnis geben möchtest,             trage bitte '$terms[2]' in die reffer-liste am Anfang des Scripts."             );         }     }

sub Error     {     ++$error_loop;     my $title = shift @;     my $msg   = shift @;     my @error;

if ($title eq 'evil values')         {         my $val;         if (@missing_values)             {             $msg = qq|<p>Die nachfolgenden Felder müssen eingegeben werden:</p>\n<ol type="i">\n|;             foreach $val (@missing_values) { $msg .= "<li>$val\n" }             $msg .= "</ol>\n";             }         if (@bad_emails)             {             $msg .= qq|<p>Die nachfolgenden Felder müssen eine gültige eMail-Adresse beinhalten:</p>\n<ol type="i">\n|;             foreach $val (@bad_emails) { $msg .= "<li>$val\n" }             $msg .= "</ol>\n";             }         if (@only_digits)             {             $msg .= qq|<p>Die nachfolgenden Felder dürfen nur Zahlen von (0-9) enthalten:</p>\n<ol type="i">\n|;             foreach $val (@only_digits) { $msg .= "<li>$val\n" }             $msg .= "</ol>\n";             }         if (@only_words)             {             $msg .= qq|<p>Die nachfolgenden Felder dürfen keine Sonderzeichen enthalten, nur A-Z und 0-9:</p>\n<ol type="i">\n|;             foreach $val (@only_words) { $msg .= "<li>$val\n" }             $msg .= "</ol>\n";             }        $title = 'Fehler - Fehlerhafte Zahlen';        $msg .= qq|<p>Gehe zurück und wiederhole die Eingabe.</p>\n|;        }     if    ($FORM{'_error_url'})  { print "Location: $FORM{'_error_url'}\n\n" }     elsif ($FORM{'_error_path'} and $error_loop < 2)         {         $ENV{'OUT_TITLE'} = $title;         $ENV{'OUT_MSG'}   = $msg;         @error = ReadFile('Error Template',$FORM{'_error_path'});         @error = ParseText(@error);         BrowserOut(@error);         }     else         {         @error = (<DATA>);         $ENV{'OUT_TITLE'} = $title;         $ENV{'OUT_MSG'}   = $msg;         @error = ParseText(@error);         BrowserOut(@error);         }     exit(0);     }

sub LogFile     {     my $msg  = shift @;     my $file = shift @;     $file = $base_path . $file;     open(FILE,">>$file") or Error('Datei Zugriffs Fehler',"Ein Fehler tritt auf, beim anhängen an die Log-Datei $msg ($file): $!");     flock(FILE,2)        or Error('Datei Sperr Fehler',"Ein Fehler tritt bei der Dateispere auf: $msg ($file): $!.");     print FILE @_;     close(FILE)          or Error('Datei schlißen Fehler',"Ein Fehler tritt beim Schliessen der Datei auf: $msg ($file): $!.");     }

sub ReadFile     {     my $msg  = shift @;     my $file = shift @;     my @lines;     $file = $base_path . $file;     open(FILE, "$file") or Error('Datei Zugriffs Fehler',"Ein Fehler tritt beim Zugriff auf: $msg ($file): $!.");     flock(FILE,2)       or Error('Datei Lock Fehler',"Ein Fehler tritt beim sperren auf: $msg ($file): $!.");     @lines = (<FILE>);     close(FILE)         or Error('Datei Schliessen Fehler',"Ein Fehler tritt beim Schliessen der Datei auf: $msg ($file): $!.");     return @lines;     }

sub ParseForm     {     my ($key, $prefs, $buffer);     if ($ENV{'REQUEST_METHOD'} eq 'GET')         { @pairs = split(/&/, $ENV{'QUERY_STRING'}) }     elsif ($ENV{'REQUEST_METHOD'} eq 'POST')         {         read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});         @pairs = split(/&/, $buffer)         }     else {Error('Bad or Unbekannte Request-Methode',                 "Das Formular muß mit REQUEST=POST oder REQUEST=GET übertragen werden, Fehler in HTML-Datei prüfen!.")}

foreach $pair (@pairs)         {         local($name, $value) = split(/=/, $pair);         $name =~ tr/+/ /;         $name =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;         $value =~ tr/+/ /;         $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;         $value =~ s/<!--(.)?-->//mg;         $FORM{$name} = $value;         if ($name =~ // and $name !~ /^/)             {             ($prefs, $key) = split /_/, $name, 2;             if ($prefs =~ /r/i and not $value)                { push @missing_values, $key }             if ($prefs =~ /e/i and $value and                 (($value =~ /(@.@)|(..)|(@.)|(.@)|(^.)/) or                   ($value !~ /^.+@([?)[a-zA-Z0-9-.]+.([a-zA-Z]{2,3}|[0-9]{1,3})(]?)$/)))                                                               { push @bad_emails, $key      }             if ($prefs =~ /d/i and $value and $value =~ /\D/) { push @only_digits, $key     }             if ($prefs =~ /w/i and $value and $value =~ /\W/) { push @only_words, $key      }             if ($prefs =~ /s/i and $value)                    { $value =~ s/^(\s)//;                                                                 $value =~ s/(\s)$//;                                                                 $FORM{$name} = $value;       }             }

}     }

sub ParseText     {     my ($line, $key, $value, $sub);     foreach $line (@)         {         while (($key => $value) = each %FORM)             { $line =~ s/[$key]/$value/ig }         while (($key => $value) = each %ENV)             { $line =~ s/[%$key]/$value/ig }         $line =~ s/[^<*?[^>]]//g;         }     foreach $line (@)         {         while ($line =~ /[<((.)?)>]/)             {             $sub = $1;             $sub =~ s/[^\d+*/-%.x<>()]//g;             $sub = eval $sub;             $line =~ s/[<(.)?>]/$sub/             }         }     return @_;     }

sub SendMail     {     open(MAIL,"|$mail_cmd") or Error('Fehler - Mailer öffnen',"Ein Fehler tritt auf beim Starten des Mailers ($mail_cmd): $!.");     print MAIL @_;     close(MAIL) or Error('Mail Send Error',"Ein Fehler tritt beim Senden der eMail auf: $?. Please check the email's headers.");     }

END <html> <head> <title>[%OUT_TITLE]</title> </head>

<body bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000"> <div align="center"><center>

<table border="2" cellpadding="0" cellspacing="0" bgcolor="#FFD26B" bordercolor="#699A69" width="500">   <tr>     <td><h2 align="center">[%OUT_TITLE]</h2>     <p align="center">[%OUT_MSG]</p></td>   </tr> </table> <p><br><p> <table border="2" cellpadding="0" cellspacing="0" bgcolor="#FFD26B" bordercolor="#699A69" width="500">   <tr>     <td><h2 align="center"><a href="http://www.cgi.tj/">AlienForm<sup>2</sup></a></h2>     <p align="center">Copyright 1997 - 1998 <a href="mailto:jon@cgi.tj">Jon Hedley</a>.<br>     All Rights Reserved.<br><br>Deutsche Übersetzung: <a href=http://www.internet-partner.de>www.internet-partner.de</a><br>  eMail <a href=mailto:hotline@schiffmann.com>hotline@schiffmann.com</a></b><br></td>   </tr> </table> </center></div> </body> </html>

Kenn mich leider in Pearl so gut wie überhaupt nicht aus.

greets.james