perlunity.de - PERL | JAVASCRIPT | PHP | MySQL | APACHE



#!/COMMUNITY

Members: 5374
davon online: 1
weitere User: 22
Click for quality!




11.02.2012 / 16:23

Community-Member werden   |   Paßwort vergessen   |   OnlineMonitor (1) Wer ist online ... OnlineMonitor starten !
     

 

Home


PERLscripts


PHPscripts


JAVAscripts


Hilfreiches


Links2www


Newscenter


Community


Interna




Community  »  Perl/CGI: Scripts des Perl-Archiv zur Themenübersicht Themensuche Themenansicht in Thread-Modus


Beitragmailer.cgi von Markus Wolf (Variablen für Einträge global machen)
Seitenanfang
Hallo zusammen,

ich benutze mailer.cgi von Markus Wolf. Funktioniert alles einwandfrei. Ich möchte nun die Variablen für die Eintragungen der Formular-Nutzer ($feldname und $wert) aus der Sub parse_form() gerne in einer anderen Sub verwenden. Ich scheitere jedoch daran die Variablen für eine andere Sub verfübgar zu machen, da ich mich mit Perl nicht wirklich auskenne. Es sieht so aus, als werden die Einträge über MAILFORM ausgelesen, richtig??? Über einen Tipp wäre ich sehr dankbar.

Vielen Dank im Voraus

Hier noch einmal der Code der Sub parse_form():

#############################################################################
# Formulardaten werden ausgelesen
#############################################################################

sub parse_form {

my (%MAILHEADER,%MAILFORM) ;
my (@required,$buffer,$mussfelder) ;
my $fehlfeld=0 ;

tie %MAILHEADER , "Tie::IxHash" ;
tie %MAILFORM , "Tie::IxHash" ;

###
#Buffer lesen

read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});

###
#Werte verarbeiten

foreach my $paar (split(/&/, $buffer)) {

my ($feldnamen, $wert) = split(/=/, $paar);

$feldnamen =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$feldnamen =~ tr/+/ /;

$wert =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$wert =~ tr/+/ /;
$wert =~ s/<!--(.|\n)*-->//g;

if ( $wert && (

$feldnamen eq 'recipient' ||
$feldnamen eq 'recipient_cc' ||
$feldnamen eq 'recipient_bcc' ||
$feldnamen eq 'subject' ||
$feldnamen eq 'redirect' ||
$feldnamen eq 'sender_email' ||
$feldnamen eq 'export_file' ||
$feldnamen eq 'export_fields'
) ) {

$feldnamen =~ s/(\015\012|\015|\012|\n|\r)/ /g ;
$wert =~ s/(\015\012|\015|\012|\n|\r)/ /g ;

$MAILHEADER{$feldnamen} = $wert;

} elsif ($feldnamen eq 'required') {

@required = split(/\|/ , $wert);

} else {

$MAILFORM{$feldnamen} = $wert if ($feldnamen !~ /button/i) ;
}
}

###
#Empf?nger-Host checken

my $hosttest1=0 ;
my $hosttest2=0 ;
my $hosttest3=0 ;

foreach my $recihosts (@recihosts) {

if ($MAILHEADER{'recipient'} =~ /$recihosts$/i) {

$hosttest1=1 ;
}

if ($MAILHEADER{'recipient_cc'} && $MAILHEADER{'recipient_cc'} =~ /$recihosts$/i ) {

$hosttest2=1 ;
}

if ($MAILHEADER{'recipient_bcc'} && $MAILHEADER{'recipient_bcc'} =~ /$recihosts$/i ) {

$hosttest3=1 ;
}
}

if ($hosttest1==0) {

$mussfelder = "<font color=\"ff0000\">Mailempf?nger nicht zugelassen!</font><br>" ;
$fehlfeld=1 ;
}

if ($hosttest2==0 && $MAILHEADER{'recipient_cc'}) {

$mussfelder = "<font color=\"ff0000\">Mailempf?nger (CC) nicht zugelassen!</font><br>" ;
$fehlfeld=1 ;
}

if ($hosttest3==0 && $MAILHEADER{'recipient_bcc'}) {

$mussfelder = "<font color=\"ff0000\">Mailempf?nger (BCC) nicht zugelassen!</font><br>" ;
$fehlfeld=1 ;
}

###
#Mussfelder checken

foreach my $require (@required) {

if (!$MAILFORM{$require}) {

$mussfelder.= "<font color=\"F89329\">$require</font><br>" ;
$fehlfeld=1 ;
}

}

foreach my $require ('recipient','redirect') {

if (!$MAILHEADER{$require}) {

$mussfelder.= "<font color=\"F89329\">Systemfeld: $require</font><br>" ;
$fehlfeld=1 ;
}

}

###
#Spamcheck

foreach my $key (keys %MAILHEADER) {

if ($MAILHEADER{$key} =~ /\n/) {

$mussfelder.= "<font color=\"ff0000\">Systemfeld: $key (NEWLINE NOT ALLOWED)</font><br>" ;
$fehlfeld=1 ;
}
}

foreach my $key (keys %MAILFORM) {

if ($MAILFORM{$key} =~ /(to|from|cc|bcc)\:\s+/i) {

$mussfelder.= "<font color=\"ff0000\">NOSPAM: $key</font><br>" ;
$fehlfeld=1 ;
}
}

###
#R?ckgabe Form-Felder

return(\%MAILHEADER,\%MAILFORM,$fehlfeld,$mussfelder) ;

}

Datum: 04.11.2007-11:09

Beitragre: mailer.cgi von Markus Wolf (Variablen für Einträge global machen)
Seitenanfang
Hab´s nun doch selbst hinbekommen... MfG

Datum: 06.11.2007-09:08

-






-
-