Schrift
[thread]243[/thread]

Tabellen in Perl?

Leser: 2


<< >> 6 Einträge, 1 Seite
piero
 2004-04-23 14:14
#2172 #2172
User since
2004-03-03
98 Artikel
BenutzerIn
[default_avatar]
Hallo,
habe folgendes Problem. Wenn der Benutzer mir eine E-Mail verschickt, dann kommt es folgendermaßen an:

Name: Test1
Vorname: Test2

ich würde gerne aber folgende Visualisierung haben:

Name:           Test1
Vorname:       Test2

Also, alles schön untereinander, damit man es besser lesen kann. Das wird doch mit Tabellen realisiert, oder?
Könnte mir jemand evtl. ein Beispiel geben?

Vielen Dank im Voraus.

Hier kommt der Code:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#print "Formatierte Ausgabe:\n\n";                                
print '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">', "\n";
print "<html><head><title>CGI-Feedback</title></head>\n";        
print M "$Formular{KURZNAME}<br />";                              
print M "$Formular{NAME1}<br />";                                
print M "$Formular{NAME2}<br />";                                
print M "$Formular{NAME3}<br />";                                
print M "$Formular{STRASSE}<br />";                              
print M "$Formular{POSTFACH}<br />";                              
print M "$Formular{LEIT_PLZ}<br />";                              
print M "$Formular{POSTFACH_PLZ}<br />";                          
print M "$Formular{LAND}<br />";                                  
print M "$Formular{PLZ}<br />";                                  
print M "$Formular{ORT}<br />";                                  
print M "$Formular{TELEFON}<br />\n";                            
print M "$Formular{FAX}<br />\n";                                
print M "$Formular{MOBIL}<br />\n";                              
print $cgi->h2('E-Mail wurde erfolgreich versendet.');

edit by format_c: eine Runde Code-Tags spendiert\n\n

<!--EDIT|format_c|1082716899-->
format_c
 2004-04-23 14:29
#2173 #2173
User since
2003-08-04
1706 Artikel
HausmeisterIn
[Homepage] [default_avatar]
Du musst den Content-type der E-Mail genau so wie beim Browser bestimmen:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
print M "From: absender\@example.org\n";
print M "To: empfänger\@example.org\n";
print M "Subject: Betreff\n";
print M "Content-type: text/html\n";
print M "\n";
# Now Mail Body is ready to be HTML
print M qq~
<html>
...
~;
close M;
#...


Gruß Alex\n\n

<!--EDIT|format_c|1082716776-->
piero
 2004-04-23 14:36
#2174 #2174
User since
2004-03-03
98 Artikel
BenutzerIn
[default_avatar]
Hallo,
muss es dann einfach so heißen?

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<html>

#print "Nicht formatierte Ausgabe:\n\n";                          
print M '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">', "\n";
print  "<html><head><title>Kundenerfassung</title></head>\n";      
print  "<body><h1>Kundenerfassung</h1>\n";                        
print M "<font face = courier>";                                  
print M "Art: $Formular{ART}<br />\n";                            
print M "Nummer: $Formular{NUMMER}<br />\n";                      
print M "Kurzname: $Formular{KURZNAME}<br />\n";                  
print M "Name1: $Formular{NAME1}<br />\n";                        
print M "Name2: $Formular{NAME2}<br />\n";                        
print M "Name3: $Formular{NAME3}<br />\n";                        
print M "Straße: $Formular{STRASSE}<br />\n";                      
print M "Postfach: $Formular{POSTFACH}<br />\n";                  
print M "Postfach-Plz: $Formular{POSTFACH_PLZ}<br />\n";          
print M "Land: $Formular{LAND}<br />\n";                          
print M "PLZ: $Formular{PLZ}<br />\n";                            
print M "Ort: $Formular{ORT}<br />\n";                            
print M "Telefon: $Formular{TELEFON}<br />\n";                    
print M "Fax: $Formular{FAX}<br />\n";                            
print M "Mobil: $Formular{MOBIL}<br />\n";  

</html>

edit by format_c: eine Runde Code-Tag spendiert\n\n

<!--EDIT|format_c|1082716860-->
format_c
 2004-04-23 14:45
#2175 #2175
User since
2003-08-04
1706 Artikel
HausmeisterIn
[Homepage] [default_avatar]
[quote=piero,23.04.2004, 12:36]Hallo,
muss es dann einfach so heißen?

...[/quote]
MMh
Erstens hast du das wichtigste ausgelassen.
Den Mail-Header. Da wo der Content-type rein muss.
Zweitens verstehe ich folgendendes nicht:
Code: (dl )
1
2
3
4
print M '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">', "\n";
print "<html><head><title>Kundenerfassung</title></head>\n";
print "<body><h1>Kundenerfassung</h1>\n";
print M "<font face = courier>";

Den DOctype schreibst du in die (ich nehme an) Pipe zu sendmail
die nächsten zwei Zeilen die für HTML bekanntlich essentiell wichtig sind auf STDOUT (wahrscheinlich an den Browser) und die darauffolgende wieder in de Pipe?
Kappier ich nicht.
Du musst schon alles was in die Mail soll in die Pipe schreiben.

Gruß Alex
piero
 2004-04-23 14:49
#2176 #2176
User since
2004-03-03
98 Artikel
BenutzerIn
[default_avatar]
Hallo,
den mail-header habe ich schon drin. hab vorhin nur ein teil meines codes eingefügt. entschuldigung, mein fehler, sollte doch lieber mal den ganzen code einfügen.
der lautet folgendermaße:

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
#!/usr/bin/perl -w                                                     
                                                                     
use MIME::Base64;                                                      
use strict;                                                            
use warnings;                                                          
use CGI;                                                              
use CGI::Carp qw(fatalsToBrowser);                                    
                                                                     
my ($Feld, $Name, $Wert);                                              
my %Formular;                                                          
                                                                     
my $cgi=CGI->new();                                                    
print $cgi->header(-type=>'text/html');                                
%Formular=$cgi->Vars();                                                
                                                                     
my $hosts = '/home/webmaster/cgi-bin/hosts';                          
my $name = ();                                                        
my $ip = $ENV{'REMOTE_ADDR'};                                          
open(ABSENDER,"<$hosts") or die $!;                                    
while(my $line = <ABSENDER>){                                          
chomp $line; #Zeilenumbruch entfernen                                  
if($line =~ /^$ip/) { #wenn Zeile mit IP beginnt                      
$name = (split (/#\s+/,$line))[1]; #Name ist durch leerstellen getrennt
}                                                                  
}                                                                  
close ABSENDER;                                                    
                                                                 
open(M, "|/usr/sbin/sendmail -t");                                
                                                                 
print M "To: DV-Abteilung <faxuser\@imap>\n";                      
                                                                 
print M "From: $name\n";                                          
                                                                 
print M "Subject: Kundenerfassung\n";                              
                                                                 
print M "Content-type: text/html\n\n";                            
                                                                 
                                                                 
                                                                 
                                                                 
if ($Formular{LAND} ne 'D')                                        
{                                                                  
$Formular{LAND} = ' '; }                                          
                                                                 
#print "Nicht formatierte Ausgabe:\n\n";                          
print M '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">', "\n";
print  "<html><head><title>Kundenerfassung</title></head>\n";
print  "<body><h1>Kundenerfassung</h1>\n";                  
print M "<font face = courier>";                            
print M "Art: $Formular{ART}<br />\n";                      
print M "Nummer: $Formular{NUMMER}<br />\n";                
print M "Kurzname: $Formular{KURZNAME}<br />\n";            
print M "Name1: $Formular{NAME1}<br />\n";                  
print M "Name2: $Formular{NAME2}<br />\n";                  
print M "Name3: $Formular{NAME3}<br />\n";                  
print M "Straße: $Formular{STRASSE}<br />\n";                
print M "Postfach: $Formular{POSTFACH}<br />\n";            
print M "Postfach-Plz: $Formular{POSTFACH_PLZ}<br />\n";    
print M "Land: $Formular{LAND}<br />\n";                    
print M "PLZ: $Formular{PLZ}<br />\n";                      
print M "Ort: $Formular{ORT}<br />\n";                      
print M "Telefon: $Formular{TELEFON}<br />\n";              
print M "Fax: $Formular{FAX}<br />\n";                      
print M "Mobil: $Formular{MOBIL}<br />\n";                  
print M "Klassifizierung: $Formular{Klasse}<br />\n";        
print M "MwSt: $Formular{MWST}<br />\n";                    
print M "UST_IDENT_NR: $Formular{UST_IDENT_NR}<br />\n";    
print M "Abteilung1: $Formular{Abteilung1}<br />\n";        
print M "Abteilung2: $Formular{Abteilung2}<br />\n";        
print M "Abteilung3: $Formular{Abteilung3}<br />\n";                  
print M "VK: $Formular{VK}<br />\n";                                  
print M "Lieferbedingung: $Formular{LIEFERUNGSBEDINGUNG}<br />\n";    
print M "Zahlungsbedingungen: $Formular{ZAHLUNGSBEDINGUNGEN}<br />\n";
print M "Kreditlimit: $Formular{KREDITLIMIT}<br />\n";                
print M "Ansprech_Name: $Formular{ANSPRECH_NAME}<br />\n";            
print M "Ansprech_Vorname: $Formular{ANSPRECH_VORNAME}<br />\n";      
print M "Ansprch_Abt: $Formular{ANSPRECH_ABT}<br />\n";              
print M "Ansprech_Funktion: $Formular{ANSPRECH_FUNKT}<br />\n";      
print M "Vertriebsgebiet: $Formular{VERTRIEBSGEBIET}<br />\n";        
print M "Produktzielgruppe: $Formular{PRODUKTZIELGRUPPE}<br />\n";    
print M "Verfasser: $Formular{VERFASSER}<br />\n";                    
print M "Bemerkung: $Formular{BEMERKUNGEN}<br />\n";                  
print $cgi->h2('E-Mail wurde erfolgreich versendet.');
                                                     
close(M);

edit by format_c eine Runde Code Tags spendiert
Tip: die Code-Tags muss man wieder mit [/code] schließen\n\n

<!--EDIT|format_c|1082717698-->
format_c
 2004-04-23 15:13
#2177 #2177
User since
2003-08-04
1706 Artikel
HausmeisterIn
[Homepage] [default_avatar]
Ok dann probier doch bitte mal den von mir angepassten Code:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#!/usr/bin/perl -w

use MIME::Base64;
use strict;
use warnings;
use CGI qw(:all);
use CGI::Carp qw(fatalsToBrowser);

my ($Feld, $Name, $Wert);
my %Formular;

my $cgi=CGI->new();
%Formular=$cgi->Vars();

my $hosts = '/home/webmaster/cgi-bin/hosts';
my $name = ();
my $ip = $ENV{'REMOTE_ADDR'};
open(ABSENDER,"<$hosts") or die $!;
while(my $line = <ABSENDER>){
chomp $line; #Zeilenumbruch entfernen
if($line =~ /^$ip/) { #wenn Zeile mit IP beginnt
$name = (split (/#\s+/,$line))[1]; #Name ist durch leerstellen getrennt
}
}
close ABSENDER;

open(M, "|/usr/sbin/sendmail -t");

print M "To: DV-Abteilung <faxuser\@imap>\n";

print M "From: $name\n";

print M "Subject: Kundenerfassung\n";



if ($Formular{LAND} ne 'D')
{
$Formular{LAND} = ' '; }

print M header(-type=>'text/html'),
start_html(-title=>'Kundenerfassung',
-style=>'td {font-family: courier,fixed;}'
),
h1('Kundenerfassung'),
table(
Tr(
[
td(['Art:',$Formular{ART}]),
td(['Nummer:',$Formular{NUMMER}]),
td(['Kurzname:',$Formular{KURZNAME}]),
td(['Name1:',$Formular{NAME1}]),
# usw.
]
),#Tr
),#table
end_html;

close(M);
print header(),start_html(-title=>'Mail versendet'),h2('Mail wurde erfolgreich versendet'),end_html;
<< >> 6 Einträge, 1 Seite



View all threads created 2004-04-23 14:14.