Thread CGI+HTML+DB durchsuchen+TXT generieren (84 answers)
Opened by lolipop 999 at 2006-12-03 10:38

lolipop 999
 2006-12-18 16:33
#9211 #9211
User since
2006-04-07
150 Artikel
BenutzerIn
[default_avatar]
danke für die schnelle hilfe

bekomme aber folgende errors:

Bareword found where operator expected at F:/Apache2/cgi-bin/rechnung.cgi line 19, near "print qq~Content-type: text/plain", referer: http://localhost/cgi-bin/suche.pl
(Might be a runaway multi-line // string starting on line 17), referer: http://localhost/cgi-bin/suche.pl
\t(Do you need to predeclare print?), referer: http://localhost/cgi-bin/suche.pl
syntax error at F:/Apache2/cgi-bin/rechnung.cgi line 20, near "print qq~Content-type: text/plain\r, referer: http://localhost/cgi-bin/suche.pl
Content", referer: http://localhost/cgi-bin/suche.pl
syntax error at F:/Apache2/cgi-bin/rechnung.cgi line 22, near "txt\r, referer: http://localhost/cgi-bin/suche.pl
\r, referer: http://localhost/cgi-bin/suche.pl
~", referer: http://localhost/cgi-bin/suche.pl
Missing right curly or square bracket at F:/Apache2/cgi-bin/rechnung.cgi line 23, at end of line, referer: http://localhost/cgi-bin/suche.pl
Execution of F:/Apache2/cgi-bin/rechnung.cgi aborted due to compilation errors., referer: http://localhost/cgi-bin/suche.pl

Hier die beiden codes:

suche.pl

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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
#!f:/Perl/bin/perl -w

use strict;
use warnings;

use CGI;
use CGI::Carp qw(fatalsToBrowser);
use DBI;

my $dbh = DBI->connect('DBI:ODBC:driver=Microsoft Access-Treiber (*.mdb); dbq=Kunden.mdb') or die $DBI::errstr;
my $cgi = CGI->new();

print $cgi->header();
my %params = $cgi->Vars();

### Suche oder Eintrag ###

if ($params{suchanfrage}){
suche($cgi, $dbh, %params);
}
elsif($params{eintrag}){
eintragen($cgi, $dbh, %params);
}
else{
print 'Keine Aktion ausgewählt';
}

$dbh->disconnect();

### Start Subroutine Suche ###

sub suche{
my ($cgi,$dbh,%params) = @_;

my $stmt = qq~SELECT Tabelle1.Kundennummer, Tabelle1.Adresse, Tabelle1.Name,
Tabelle1.Telefonnummer, Tabelle2.Rechnungsbetrag
FROM Tabelle1, Tabelle2
WHERE Tabelle1.Kundennummer = Tabelle2.Kundennummer~;

my $sth = $dbh->prepare($stmt) or die $dbh->errstr();
$sth->execute() or die $dbh->errstr();

### Treffer ###
if ($sth->rows != 0){
print <<HERE_TEXT1;
<HTML>
<HEAD>
<TITLE> Antwort </TITLE>
</HEAD>

<BODY>
<CENTER>
<H1>Suchergebnis:</H1>
<HR>
<TABLE BORDER>
<TR>
<td width="200"><b>Kundennummer:</b></td>
<td width="200"><b>Adresse:</b></td>
<td width="200"><b>Name:</b></td>
<td width="200"><b>Telefonnummer:</b></td>
<td width="200"><b>Rechnungsbetrag:</b></td>
</TR>

HERE_TEXT1


while (my @data = $sth->fetchrow_array()) {
print sprintf(qq~<TR>\n<TD><B>%s</B></TD>
<TD>%s</TD>
<TD>%s</TD>
<TD><B>%s</B></TD>
<TD><a href="rechnung.cgi?id=%s" target="_blank">%s</a></TD>\n</TR>~,@data[0..3,1,4]);
}

print qq§</TABLE>\n<P><A HREF =\"../formular1.html\">Neue Suche!</A></P>\n<HR>\n
</CENTER>\n</BODY>\n</HTML>§;

}
else {
print <<HERE_TEXT2;
<HTML>
<HEAD>
<TITLE>Antwort</TITLE>
</HEAD>
<BODY>
<P>Leider brachte die Suche nach '$params{name}' keine Ergebnisse!</P>
<HR>
<P><A HREF =\"../formular1.html\">Neue Suche!</A></P>
</BODY>
</HTML>

HERE_TEXT2
}
$sth->finish();
}


sub eintragen{
my ($cgi,$dbh,%params) = @_;
$dbh->do("INSERT INTO Kunden VALUES (?,?,?,?,?)",undef,
@params{qw/kundennummer adresse name telefonnummer rechnungsbetrag/}) or die $dbh->errstr();


my ($kundennummer,$adresse,$name,$telefonnummer,$rechnungsbetrag) =
@params{qw/kundennummer adresse name telefonnummer rechnungsbetrag/};

print <<HERE_TEXT3;
<HTML>
<HEAD>
<TITLE> Antwort </TITLE>
</HEAD>
<BODY>
<H4>Datenbankeintrag:</H4>
<HR>
<P><B>$kundennummer</B>, $adresse, $name, $telefonnummer, $rechnungsbetrag</P>
<HR>
<P><A HREF =\"../formular2.html\">Neuer Eintrag!</A></P>
<HR>
</BODY>
</HEAD>

HERE_TEXT3

}

und rechnung.cgi
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
#!f:/Perl/bin/perl 

use strict;
use warnings;
use CGI;
use DBI;

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

my $dbh = DBI->connect('DBI:ODBC:driver=Microsoft Access-Treiber (*.mdb); dbq=Kunden.mdb') or die $DBI::errstr;
my $stmt = "SELECT Name, Adresse, Rechnungsbetrag FROM Tabelle1 WHERE Kundennummer = ?";
my $sth = $dbh->prepare($stmt) or die $dbh->errstr();
$sth->execute($params{id});

my %hash;
@hash{qw/Name Adresse Rechnungsbetrag} = $sth->fetchrow_array();

print qq~Content-type: text/plain
Content-Disposition: attachment; filename=$params{id}.txt

~;
print sprintf("%-20s %s",$_,$hash{$_}) for(keys %hash);


Danke für die Hilfe

lolipop 999

View full thread CGI+HTML+DB durchsuchen+TXT generieren