In my case, I don't need the error checking as I am having dropdowns on the
web page and user selects one file in the list and them I am listing the
file contents on the web page.

Thanks
Bal.

-----Original Message-----
From: Spencer Christensen [mailto:[EMAIL PROTECTED]]
Sent: Monday, March 04, 2002 1:32 PM
To: [EMAIL PROTECTED]
Subject: Re: [cgiapp] Printing in plain text format.


Quoting Spencer Christensen <[EMAIL PROTECTED]>:

> Hello Bal,
> 
> If you want to display the entire page as text/plain, then there are a
> few 
> things you should change.  First of all, you should add error checking
> to your 
> open statement (this is just good programming practice).  Second, you
> try to set 
> the header for the page by $q->header('text/plain'), but this won't
> work.  
> Instead you should set it by $self->header_props(-type=>'text/plain'). 
> And 
> third, if you want the whole page to be plain text, don't start and end
> the page 
> with HTML (this will just show up as extra text).  Here is my version of
> your 
> code:
> 
> sub showdetails {
>       my $self = shift;
>       #Get CGI query object
>       my $q = $self->query();
>       my $app = $q->param("app") || '';
>       my $tdir =$q->param("tdir") || '';
>       my $yrs =$q->param("yrs") || '';
>       my $dts =$q->param("dts") || '';
>       my $rep = $tdir. "\\\\" . $app . "\\\\" . $yrs . "\\\\" . $dts;
> 
>       open(FH, $rep) or return "Cannot open $ref: $!";   # Error checking
>       my $output = join('', <FH>);   # Put entire file into one string
>         close(FH);
>       $self->header_props(-type => 'text/plain');   # Set page as plain
text
>       return $output;
> }

It's kind of wierd to reply to your own message, but I just felt I should
add a 
note about error checking.  The error checking I added to your open
statement is 
ok while you are coding and debugging, but is not really suitable for 
use in production.  In a production application, you should have a more 
ellaborate error checking system which provides understandable error
messages 
for the users and doesn't give the appearance of a "crash".  I use a log
file 
for all of my error messages (and also for debugging) and have a template
for 
error messages for the users.  This system works pretty well for me (I have
a 
CGI::App base class with logfile() and error_page() methods).  I'm sure
there 
are other ways of handling errors out there.  I'd be interested to hear what

others have developed.



-spencer christensen
[EMAIL PROTECTED]

---------------------------------------------------------------------
Web Archive:  http://www.mail-archive.com/[email protected]/
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

---------------------------------------------------------------------
Web Archive:  http://www.mail-archive.com/[email protected]/
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to