Thread HTML::Template Parameter Fehler (9 answers)
Opened by kruemmel at 2007-01-13 23:01

kruemmel
 2007-01-13 23:01
#73168 #73168
User since
2006-02-12
33 Artikel
BenutzerIn
[default_avatar]
Hallo,

ich habe eine mysql DB namens info mit einer Tabelle namens infotable. Aus dieser DB bzw. Tabelle sollen alle Daten ausgelesen und ausgegeben werden. Das ganze mache mit Perl und dem Modul HTML::Template. Hier einmal mein Template und mein Perl Script


HTML Template:
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
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
   
<html lang="en">
   <head>
   
       <title><"Ergebnis von auth.log"></title>
   
   </head>

   <body>
   
       <h1>Tabelle f&uuml;r die Datei auth.log</h1>
   
       <table border="1">
           <caption>Assoziationen</caption>
               <tr>
                   <th>Monat</th>
                   <th>Tag</th>
                   <th>Zeit</th>
                   <th>Host</th>
                   <th>Dienst</th>
                   <th>Meldung</th>
               </tr>
       
           <TMPL_LOOP NAME="data">
       
               <tr>
                   <td>TPMPL_VAR NAME="monat"</td>
                   <td>TPMPL_VAR NAME="tag"</td>
                   <td>TPMPL_VAR NAME="zeit"</td>
                   <td>TPMPL_VAR NAME="host"</td>
                   <td>TPMPL_VAR NAME="dienst"</td>
                   <td>TPMPL_VAR NAME="meldung"</td>
               </tr>
       
           </TMPL_LOOP>
       </table>
   
   </body>
   
</html>


und hier mein Perl Script
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
#!/usr/bin/perl -w

use strict;
use DBI;
use HTML::Template;


# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #
# Datenbankdaten und Verbindung zur DB herstellen
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #
# Datenbank
my $datenbank = "info";
# Datenbankhost
my $datenbankhost = "127.0.0.1";
# Datenbankusername
my $datenbankuser = "root";
# Datenbankpasswort
my $datenbankpw = "";


my $dbh = DBI->connect("DBI:mysql:$datenbank:$datenbankhost","$datenbankuser","$datenbankpw")
or die "Fehler bei der Datenbankverbindung aufgetreten.";

my $sth = $dbh->prepare('select  Monat, Tag, Zeit, Host, Dienst, Meldung
                       from infotable');

$sth->execute();

my $rows;
push @{$rows}, $_ while $_ = $sth->fetchrow_hashref();

my $template = HTML::Template->new(filename => 'template1.html');
$template->param(data => $rows);

print $template->output();

$dbh->disconnect();



Wenn ich das Perl Script ausführe bekomme ich eine Fehlermeldung in das error.log File. Die Fehlermeldung sieht so aus:

Code: (dl )
1
2
3
[Sat Jan 13 21:40:45 2007] [error] [client 127.0.0.1] HTML::Template->output() : fatal error in loop output : HTML::Template : Attempt to set nonexistent parameter 'meldung' - this parameter name doesn't match any declarations in the template file : (die_on_bad_params => 1) at /usr/local/share/perl/5.8.8/HTML/Template.pm line 2997
[Sat Jan 13 21:40:45 2007] [error] [client 127.0.0.1]  at /opt/lampp/htdocs/xampp/testperl.pl line 38
[Sat Jan 13 21:40:45 2007] [error] [client 127.0.0.1] Premature end of script headers: testperl.pl


Kann es sein, dass das Modul HTML::Template einen Fehler hat? Ich benutze die Version 2.8. Ich verstehe nicht was mit dem  Parameter meldung nicht stimmt. Es ist ein Parameter aus der Tabelle infotable unzwar der letzte der Tabelle. Hat vielleicht einer von euch eine Idee ?

edit pq: code-tags hinzugefügt\n\n

<!--EDIT|pq|1168792872-->

View full thread HTML::Template Parameter Fehler