--- Chris Devers <[EMAIL PROTECTED]> wrote:

> On Wed, 6 Jul 2005, Ron Smith wrote:
> 
> > I'm getting an error when I submit the following
> html form to a CGI 
> > script.
> 
> Let's focus on the script, not the HTML.
> 
> Once you've verified that the script works, at least
> on a basic level -- 
> i.e. you can go to
> http://your-site/cgi-bin/your-script.cgi and get
> back 
> a non-error response -- *then* you can start
> thinking about the HTML.
> 
> > #!/www/perl/bin/perl -wT
> >
> > use strict;
> >
> > use CGI qw(:standard);
> > use CGI::Carp qw(fatalsToBrowser);
> > print header;
> > print CORE::dump(); # <===== This line was
> originaly: print dump();
> 
> Okay, hold that thought...
> 
> 
> > ---------snip-3-From the browser---------------
> >
> > Internal Server Error
> 
> This continues to be useless. It's a generic error
> response from the web 
> server; it indicates nothing about what the actual
> problem was. That 
> said, with CGI::Carp's fatalsToBrowser, you should
> be getting useful 
> diagnostics in the web server response. Maybe it's
> hidden in a comment 
> or something, I don't know. In any case, the
> response you pasted doesn't 
> have any useful information in it, just as it didn't
> when you pasted it 
> to the list a few days ago :-)
> 
> > --------------snip-4-From the error
> log--------------
> >
> > [Wed Jul 06 18:23:56 2005] [error] [client
> 127.0.0.1]
> > Premature end of script headers: form4-21.cgi,
> > referer: http://localhost/form4-21.html
> 
> Okay, now we're getting somewhere.
> 
> "Premature end of script headers" is generally a
> tell-tale sign that the 
> CGI script never sent back the mandatory
> content-type declaration. I'm 
> not clear why this isn't working, as the `print
> header;` line you have 
> should do this, but in any case you can ignore
> CGI.pm for a moment and 
> just put the needed line in directly, like so:
> 
>      #!/www/perl/bin/perl -wT
> 
>      use strict;
> 
>      use CGI qw(:standard);
>      use CGI::Carp qw(fatalsToBrowser);
>      print "Content-type: text/plain\n\n";
>      print "Okay, at least this worked.\n";
> 
> If the code above works, then you can amend it to
> use your CORE line:
> 
>      #!/www/perl/bin/perl -wT
> 
>      use strict;
> 
>      use CGI qw(:standard);
>      use CGI::Carp qw(fatalsToBrowser);
>      print "Content-type: text/plain\n\n";
>      print CORE::dump();
> 
> Now then, why on earth are you trying to dump core?

This was just an exercise out of a book. I gave your
suggestion a try and worked through the lines and got
it to work. I still get the error with 'dump()'
though. I finally moved on to the following, whiched
worked fine:

#!/www/perl/bin/perl -wT

# use strict;
use CGI qw(:standard);
# use CGI::Carp qw(fatalsToBrowser);
print header;

my $first_name = param('fname');
my $last_name = param('lname');
my $fav_color = param('color');

print qq(Hello, $first_name $last_name.<br />);
print qq(Your favorite color is: $fav_color<br />);

Thanks for the suggestion. :-)

Ron

> 
> If you just want to output the environment, this is
> a clumsy way to do 
> it. Something like this would work just fine:
> 
>      #!/www/perl/bin/perl -wT
> 
>      use strict;
> 
>      use CGI qw(:standard);
>      use CGI::Carp qw(fatalsToBrowser);
>      print "Content-type: text/plain\n\n";
> 
>      print "Environment variable dump:\n";
>      foreach $key ( sort keys %ENV ) {
>          print "$key: $ENV{$key}\n";
>      }
> 
> That should work, and as it isn't dumping core, it
> might even behave :-)
> 
> 
> 
> -- 
> Chris Devers
> 


-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>


Reply via email to