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



#!/COMMUNITY

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




11.02.2012 / 13:00

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

 

Home


PERLscripts


PHPscripts


JAVAscripts


Hilfreiches


Links2www


Newscenter


Community


Interna




Community  »  Perl: Allgemeines Forum zur Themenübersicht Themensuche Themenansicht in Thread-Modus


BeitragDaten aus PDF über Perl als Mail verschicken
Seitenanfang
Hi, ich hab folgendes Problem, ich hab vor kurzem als Webmaster ein Server-System übernommen und sollte einen Bestellmodus modifizieren. Der Bestellmodus lief folgender maßen:

- Der Kunde hat die möglichkeit über den Onlineshop zu bestellen
- oder sich ein PDF mit einem Fax-Bestellformular herunterzuladen

In diesem Falle sprechen wir über das Fax Formular, das als PDF ja normalerweise statisch aufgebaut ist.
In diesem Formular sind so einige Felder die aber auch direkt am PC ausgefüllt werden können, (1) um sie dann auszudrucken oder (2) direkt aus dem PDF (über einen kleinen Button) auch noch alternativ als Mail zu versenden. Doch genau hier entsteht mein Problem.

Ich habe ein Script bei dem ich mir 100% sicher bin das es vom Prinzip her gehen muss, aber wie es halt so is geht es trotzdem nicht.

Da ich leider vorallem im PERL recht unbehalfen bin hoffe ich das ihr mir helfen könnt.
BTW: Ich vermute nen Formfehler oder so...

SCRIPT: (orderpdf.pl)
#!/usr/bin/perl

# *** Module einbinden ***

# *** Verzeichnise Server ***

$mail_prog = '/usr/lib/sendmail' ;

# *** Variablen ***

$LOCK_EX = 2;
$LOCK_UN = 8;

# *** Formularinhalte vordefinieren ***

my $empf = "webmaster\@edumedia.de";
my $subj = "Test PDF-Formular senden";
my $sender = "webmaster\@edumedia.de";
my $titel = "Formulardaten aus dem PDF:";

&parse_form();

if( defined($FORM{'subject'}) ) {
$subj = $FORM{'subject'};
delete($FORM{'subject'});
}
if( defined($FORM{'sendto'}) ) {
$empf = $FORM{'sendto'};
delete($FORM{'sendto'});
}
if( defined($FORM{'titel'}) ) {
$titel = $FORM{'titel'};
delete($FORM{'titel'});
}

@keylist = ();
$EMAIL_tables = "";
foreach $key (keys %FORM) { push(@keylist,$key); }
@sortkeylist = sort(@keylist);
foreach $key (@sortkeylist) {
$value = $FORM{$key};
$clkey = $key;
$clkey =~ tr/+/ /;
$clkey =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$clkey =~ s/<!--(.|\n)*-->//g;
$clkey =~ s/<([^>]|\n)*>//g;
$EMAIL_tables .= "$clkey: $value\n\n";
}

&email_order($empf, $subj, $sender, $titel);

print "Content-type: text/html\n\n";
print "Formular wurde gesendet!";

sub email_order {
my $recip = shift;
my $subject = shift;
my $sendemail = shift;
my $titel = shift;
open (MAIL, "|$mail_prog -t");
print MAIL "To: $recip\n";
print MAIL "Reply-to: $sendemail\n";
print MAIL "From: $sendemail\n";
print MAIL "Subject: $subject\n\n";
print MAIL "$titel\n";
print MAIL "==========================\n\n";
print MAIL "$EMAIL_tables";
print MAIL "==========================\n";
print MAIL "\n\n";
close (MAIL);
}

# *** Formulardaten auswerten ***
sub parse_form {
local ($buffer);
# Get the input
if ($ENV{'REQUEST_METHOD'} eq 'POST') {
read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
}
else {
$buffer=$ENV{'QUERY_STRING'};
}

# Split the name-value pairs
@pairs = split(/&/, $buffer);

foreach $pair (@pairs) {
($name, $value) = split(/=/, $pair);

# Un-Webify plus signs and %-encoding
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$value =~ s/<!--(.|\n)*-->//g;
$value =~ s/<([^>]|\n)*>//g;

$FORM{$name} = $value;
}
}

#!Scriptende

Vielen Dank schonmal im Vorraus

Fab

Datum: 26.09.2005-14:03

Beitragre: Daten aus PDF über Perl als Mail verschicken
Seitenanfang
Du solltest Dir mal das Modul CGI.pm anschauen (siehe Doku auf http://search.cpan.org ), dann machst Du Dir weniger Arbeit mit dem Parsen von Formulareingaben...

Dann zusätzlich noch use strict (siehe http://wiki.perl-community.de/bin/view/Wissensbasis/UseStrict )...

Datum: 26.09.2005-19:00

-






-
-