Schrift
[thread]850[/thread]

CGI+HTML+DB durchsuchen+TXT generieren (Seite 6)



<< |< 1 ... 3 4 5 6 7 8 9 >| >> 85 Einträge, 9 Seiten
GwenDragon
 2006-12-16 13:04
#9187 #9187
User since
2005-01-17
14848 Artikel
Admin1
[Homepage]
user image
Code: (dl )
<FORM Action="f:/Apache2/cgi-bin/suche.pl" Method="post">

Das geht nicht so!
Der Parameter von action muss eine URL sein, kein lokaler Dateizugriff!
Der Apache ist doch ein Webserver und kein Fileserver.\n\n

<!--EDIT|GwenDragon|1166267124-->
renee
 2006-12-16 13:06
#9188 #9188
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Dein Skript mal etwas aufpoliert:
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
125
#!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();
my $antwort;

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&auml;hlt';
}

$dbh->disconnect();

### Start Subroutine Suche ###

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

my $stmt = qq~SELECT Tabelle1.Kundennummer, Tabelle1.Name,
Tabelle1.Telefon, Tabelle2.Rechnungsbetrag
FROM Tabelle1 JOIN Tabelle2
ON 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 (@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>%s</TD>\n</TR>~,@data);
}

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 '$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

}
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
lolipop 999
 2006-12-16 16:39
#9189 #9189
User since
2006-04-07
150 Artikel
BenutzerIn
[default_avatar]
also
formular1. html für suche und formular für eintrag habe ich unter htdocs gespeichert.

ich öffne die mit
http://localhost/formular1.html

gebe den suchbegriff ein

und klicke suchen

dann will er die suche.pl herunterladen und nicht öffnen

kann mir wer sagen warum?

danke für die Hilfe

lolipop 999
renee
 2006-12-16 17:04
#9190 #9190
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Schreibe mal in die httpd.conf ein AddHandler cgi-script .pl .cgi
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
lolipop 999
 2006-12-16 17:17
#9191 #9191
User since
2006-04-07
150 Artikel
BenutzerIn
[default_avatar]
so danke das habe ich natürlich vergessen

nun jetzt sind jede menge fehler:

Global symbol "$DBH" requires explicit package name at F:/Apache2/cgi-bin/suche.pl line 41.
Global symbol "$STH" requires explicit package name at F:/Apache2/cgi-bin/suche.pl line 45.
Global symbol "@data" requires explicit package name at F:/Apache2/cgi-bin/suche.pl line 67.
Global symbol "$STH" requires explicit package name at F:/Apache2/cgi-bin/suche.pl line 67.
Global symbol "@data" requires explicit package name at F:/Apache2/cgi-bin/suche.pl line 72.
Global symbol "$name" requires explicit package name at F:/Apache2/cgi-bin/suche.pl line 80.
syntax error at F:/Apache2/cgi-bin/suche.pl line 102, near "or"
Execution of F:/Apache2/cgi-bin/suche.pl aborted due to compilation errors.


ich versuche mal selber

aber bitte trotzdem um Hilfe

lolipop 999
renee
 2006-12-16 17:29
#9192 #9192
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Und der dazugehörige Code??

Poste bitte nicht immer einfach nur die Fehlermeldungen sondern auch den dazugehörigen Code.
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
lolipop 999
 2006-12-16 17:50
#9193 #9193
User since
2006-04-07
150 Artikel
BenutzerIn
[default_avatar]
Tschuldigung hier der 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
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
125
#!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();
my $antwort;

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&auml;hlt';
}

$dbh->disconnect();

### Start Subroutine Suche ###

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

my $stmt = qq~SELECT Tabelle1.Kundennummer, Tabelle1.Name,
Tabelle1.Telefon, Tabelle2.Rechnungsbetrag
FROM Tabelle1 JOIN Tabelle2
ON 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 (@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>%s</TD>\n</TR>~,@data);
}

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 '$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

}


Danke für die Hilfe

lolipop 999
renee
 2006-12-16 17:56
#9194 #9194
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Ersetze alle $DBH durch $dbh und alle $STH durch $sth...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
topeg
 2006-12-16 18:07
#9195 #9195
User since
2006-07-10
2611 Artikel
BenutzerIn

user image
Wenn ich mich richtig erinnere, lolipop, dann hattest du das selbe Problem schonmal. Das zeugt von geringer Aufmerksamkeit und Lernresitenz. Das kommt nicht gut rüber...
lolipop 999
 2006-12-17 11:22
#9196 #9196
User since
2006-04-07
150 Artikel
BenutzerIn
[default_avatar]
Hallo

Ich habe jetzt ein paar error's selbst ausgebessert ich hoffe ich habe das richtig gemacht

leider bleibt noch was übrig:

syntax error at F:/Apache2/cgi-bin/suche.pl line 113, near "print"
Bareword "suchanfrage" not allowed while "strict subs" in use at F:/Apache2/cgi-bin/suche.pl line 26.
Execution of F:/Apache2/cgi-bin/suche.pl aborted due to compilation errors.

Hier der aktuelle code dazu:

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
125
126
127
128
129
130
131
#!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();
my $antwort;
my @data;
my $name;
my $kundennummer;
my $adresse;
my $rechnungsbetrag;
my $telefonnummer;


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&auml;hlt';
}

$dbh->disconnect();

### Start Subroutine Suche ###

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

my $stmt = qq~SELECT Tabelle1.Kundennummer, Tabelle1.Name,
Tabelle1.Telefon, Tabelle2.Rechnungsbetrag
FROM Tabelle1 JOIN Tabelle2
ON 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 (@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>%s</TD>\n</TR>~,@data);
}

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 '$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 hier die fehlerpassagen:

Line 113

Code: (dl )
print <<HERE_TEXT3;

Line26
Code: (dl )
if (params{suchanfrage}){


Danke für eure Hilfe

lolipop 999
<< |< 1 ... 3 4 5 6 7 8 9 >| >> 85 Einträge, 9 Seiten



View all threads created 2006-12-03 10:38.