Just for clarity's sake, here is the test script command and output: ------------------------------------------------------------------- $ tests/View_mainpage.pl ### HTML::Template Debug ### In _parse: ### HTML::Template _param Stack Dump ###
$VAR1 = [ \'<html><body bgcolor="#FF00FF">Test!</body></html> ' ]; ### HTML::Template Debug ### In output ### HTML::Template output Stack Dump ### $VAR1 = [ \'<html><body bgcolor="#FF00FF">Test!</body></html> ' ]; Main Page..<html><body bgcolor="#FF00FF">Test!</body></html> ------------------------------------------------------------------- On Thu, 2008-03-13 at 11:26 -0400, xyon wrote: > Thanks for the reply. > > I thought as you did (that there were too many "Content-Type" > definitions), so commented out this line in the View.pm module, but that > doesn't seem to have changed anything: > > 'print "Content-Type: text/html\n\n";' > > > > > Here is the lwp command and output: > ------------------------------------------------------------------- > $ lwp-request -e -S -s -U -m GET -Sed "http://localhost/admin/" > GET http://localhost/admin/ > User-Agent: lwp-request/2.07 > > GET http://localhost/admin/ --> 200 OK > Connection: close > Date: Thu, 13 Mar 2008 15:24:23 GMT > Server: Apache > Content-Length: 0 > Content-Type: text/html; charset=UTF-8 > Client-Date: Thu, 13 Mar 2008 15:24:23 GMT > Client-Peer: 127.0.0.1:80 > Client-Response-Num: 1 > ------------------------------------------------------------------- > > > On Thu, 2008-03-13 at 16:11 +0100, André Warnier wrote: > > Hi. > > > > First, a small disgression : along with perl, comes a beautiful test > > tool for HTTP stuff, called "lwp-request". > > Like, at the command-line : > > lwp-request (to see the options) > > lwp-request -m GET -Sed "http://myserver/myURL" > > (that will show you what you get as a response, without a browser > > getting in the way) > > > > Then, below, are you not now sending one "Content-type" too many ? > > It looks like you are doing it once in handler(), and once in mainpage(). > > > > André > > > > xyon wrote: > > > That worked great with the test script ( print $template->output; ), but > > > unfortunately, I'm having trouble getting the display onto a web page > > > (via the Handler). The resulting web page is blank, with no source. > > > > > > > > > Below are my Apache configs for the handler, logs, and the handler and > > > view module's latest code. I've also included the test script code, just > > > in case there is some obvious reason it would work and the handler > > > won't. > > > > > > > > > > > > > > > Apache config: > > > ---------------------------------------------------- > > > PerlRequire /etc/httpd/perl/startup.pl > > > <Location /admin> > > > SetHandler modperl > > > PerlResponseHandler Myserver::Handler > > > </Location> > > > ---------------------------------------------------- > > > > > > > > > > > > > > > /etc/httpd/perl/startup.pl: > > > ---------------------------------------------------- > > > use lib qw(/home/Perl/); > > > 1; > > > ---------------------------------------------------- > > > > > > > > > > > > > > > Apache log: > > > ---------------------------------------------------- > > > ==> /var/log/httpd/error_log <== > > > ### HTML::Template Debug ### In _parse: > > > ### HTML::Template _param Stack Dump ### > > > > > > $VAR1 = [ > > > \'<html><body bgcolor="#FF00FF">Test!</body></html> > > > ' > > > ]; > > > > > > ### HTML::Template Debug ### In output > > > ### HTML::Template output Stack Dump ### > > > > > > $VAR1 = [ > > > \'<html><body bgcolor="#FF00FF">Test!</body></html> > > > ' > > > ]; > > > > > > > > > ==> /var/log/httpd/ssl_request_log <== > > > [13/Mar/2008:10:48:38 -0400] 10.5.5.5 TLSv1 DHE-RSA-AES256-SHA > > > "GET /admin/ HTTP/1.1" - > > > > > > ==> /var/log/httpd/ssl_access_log <== > > > 10.5.5.5 - - [13/Mar/2008:10:48:38 -0400] "GET /admin/ HTTP/1.1" 200 - > > > ---------------------------------------------------- > > > > > > > > > > > > > > > /home/Perl/Myserver/Handler.pm > > > ---------------------------------------------------- > > > package Myserver::Handler; > > > > > > #Setup some essentials > > > use strict; #strict tolerance for code > > > use Carp; #debugging > > > use diagnostics; #more debugging > > > use warnings; #more debugging > > > > > > #Handler-related stuff > > > use Apache2::RequestRec (); > > > use Apache2::RequestIO (); > > > use Apache2::Const -compile => qw(OK); > > > > > > sub handler { > > > my $self = shift; > > > > > > my $view = Myserver::View->new(); > > > $view->mainpage; > > > > > > # Obligatory stuff for the handler > > > $self->content_type('text/html'); > > > return Apache2::Const::OK; > > > > > > } > > > > > > 1; > > > > > > ---------------------------------------------------- > > > > > > > > > > > > > > > /home/Perl/Myserver/View.pm: > > > ---------------------------------------------------- > > > package Myserver::View; > > > > > > #Setup some essentials > > > use strict; #strict tolerance for code > > > use Carp; #debugging > > > use diagnostics; #more debugging > > > use warnings; #more debugging > > > > > > #Loadup some needed functions > > > use HTML::Template; > > > > > > sub new { > > > my $self = shift; > > > return $self; > > > } > > > > > > sub mainpage { > > > my $self = shift; > > > my $template = HTML::Template->new( > > > filename => '/home/Perl/tmpl/mainpage.tmpl', > > > cache => 1, > > > debug => 1, > > > stack_debug => 1 ); > > > print "Content-Type: text/html\n\n"; > > > print $template->output; > > > return $self; > > > } > > > > > > 1; > > > ---------------------------------------------------- > > > > > > > > > > > > > > > /home/Perl/tmpl/mainpage.tmpl: > > > ---------------------------------------------------- > > > <html><body bgcolor="#FF00FF">Test!</body></html> > > > ---------------------------------------------------- > > > > > > > > > > > > > > > /home/Perl/tests/View_mainpage.pl > > > ---------------------------------------------------- > > > #!/usr/bin/perl -w > > > > > > # Test printing of the main page > > > print "Main Page.."; > > > > > > #Let's load the view module > > > use lib "../"; > > > use Myserver::View; > > > #Now let's load some things that are very handy > > > use strict; #strict tolerance for code > > > use Carp; #debugging > > > use warnings; #more debugging > > > use diagnostics; #even more debugging > > > > > > # Let's create an object > > > my $view = Myserver::View->new; > > > > > > # Now, let's tell View to display the main page > > > $view->mainpage; > > > > > > print ".OK"; > > > > > > 1; > > > ---------------------------------------------------- > > > > > > > > > > > > > > > On Thu, 2008-03-13 at 13:29 +0800, Foo JH wrote: > > >> try print $template->output; > > >> > > >> You forgot the print(); > > >> > > >> xyon wrote: > > >>> Hey everyone, > > >>> > > >>> Firstly, I apologize I sent the previous email under an incorrect > > >>> subject line. > > >>> > > >>> I am working on my first Object-Oriented project, and have hit a slight > > >>> snag. I am using HTML::Template to output within the View module, but it > > >>> never outputs. I don't see any errors in the logs, I just get a blank > > >>> page. Below is pertinent information including a test script with its > > >>> output: > > >>> > > >>> > > >>> > > >>> OS Info: > > >>> ---------------------------------------------------- > > >>> CentOS release 4.6 (Final) > > >>> ---------------------------------------------------- > > >>> > > >>> > > >>> > > >>> Package info: > > >>> ---------------------------------------------------- > > >>> perl-5.8.8-11 > > >>> perl-HTML-Template-2.9-1 > > >>> httpd-2.0.59-1.el4s1.10.el4.centos > > >>> mod_perl-2.0.3-1.el4s1.3 > > >>> ---------------------------------------------------- > > >>> > > >>> > > >>> > > >>> /home/perl/Myserver/View.pm > > >>> ---------------------------------------------------- > > >>> package Myserver::View; > > >>> > > >>> #Setup some essentials > > >>> use strict; #strict tolerance for code > > >>> use Carp; #debugging > > >>> use diagnostics; #more debugging > > >>> use warnings; #more debugging > > >>> > > >>> #Loadup some needed functions > > >>> use HTML::Template; > > >>> > > >>> sub new { > > >>> my $self = shift; > > >>> return $self; > > >>> } > > >>> > > >>> sub mainpage { > > >>> my $self = shift; > > >>> my $template = HTML::Template->new( filename => > > >>> '/home/Perl/tmpl/mainpage.tmpl', > > >>> cache => 1, > > >>> debug => 1, > > >>> stack_debug => 1 ); > > >>> print "Content-Type: text/html\n\n"; > > >>> $template->output; > > >>> return $self; > > >>> } > > >>> > > >>> 1; > > >>> ---------------------------------------------------- > > >>> > > >>> > > >>> > > >>> /home/Perl/tests/View_mainpage.pl > > >>> ---------------------------------------------------- > > >>> #!/usr/bin/perl -w > > >>> > > >>> # Test printing of the main page > > >>> print "Main Page.."; > > >>> > > >>> #Let's load the view module > > >>> use lib "../"; > > >>> use Myserver::View; > > >>> #Now let's load some things that are very handy > > >>> use strict; #strict tolerance for code > > >>> use Carp; #debugging > > >>> use warnings; #more debugging > > >>> use diagnostics; #even more debugging > > >>> > > >>> # Let's create an object > > >>> my $view = Myserver::View->new; > > >>> > > >>> # Now, let's tell View to display the main page > > >>> $view->mainpage; > > >>> > > >>> print ".OK"; > > >>> > > >>> 1; > > >>> ---------------------------------------------------- > > >>> > > >>> > > >>> > > >>> /home/Perl/tmpl/mainpage.tmpl: > > >>> ---------------------------------------------------- > > >>> <html><body bgcolor="#FF00FF">Test!</body></html> > > >>> ---------------------------------------------------- > > >>> > > >>> > > >>> > > >>> Output with debugging on (as above): > > >>> ---------------------------------------------------- > > >>> $ tests/View_mainpage.pl > > >>> ### HTML::Template Debug ### In _parse: > > >>> ### HTML::Template _param Stack Dump ### > > >>> > > >>> $VAR1 = [ > > >>> \'<html><body bgcolor="#FF00FF">Test!</body></html> > > >>> ' > > >>> ]; > > >>> > > >>> Main Page..Content-Type: text/html > > >>> > > >>> ### HTML::Template Debug ### In output > > >>> ### HTML::Template output Stack Dump ### > > >>> > > >>> $VAR1 = [ > > >>> \'<html><body bgcolor="#FF00FF">Test!</body></html> > > >>> ' > > >>> ]; > > >>> > > >>> .OK > > >>> ---------------------------------------------------- > > >>> > > >>> > > >>> > > >>> Output without debugging: > > >>> ---------------------------------------------------- > > >>> $ tests/View_mainpage.pl > > >>> Main Page..Content-Type: text/html > > >>> > > >>> .OK > > >>> ---------------------------------------------------- > > >>> > > >>> > > >>> > > >>> > > >>> > > >