[edited by: phranque at 12:03 am (utc) on Jan. 21, 2008]
[edit reason] no URLs please [/edit]
fyi, whenever you have a 500 you will also have a message in the server error log.
regarding your html-as-text problem, that typically means your script or server is not sending out the content type header first thing.
regarding your html-as-text problem, that typically means your script or server is not sending out the content type header first thing.
With a perl script that will generate a 500 error, not plain text output, unless they are using something like CGI::Carp which will print a header by default and the error message. HTML displayed as text should indicate that Firefox does not recognize the header or the header really is plain text instead of html.
script process . . . okay
script process . . . okay
script process . . . ERROR
script process . . . okay
print "content-type: text/html\n\n";
output to browser
Most perl coders handle their errors like
[do something] or die("cannot do something!");
The die command will cause the script to terminate with an error to STDOUT - if run on the command line, this prints the message to the terminal. But if run from the web, it errors because it never got to the content-type.
So by moving the content-type to the top of the program, you can often miss errors, which is might be what you've done. The scripts run now, but they may still be dying somewhere inline.
I like to do
[do something] or &my_error_handler("Cannot do something");
where my_error_handler is just a small routine to print errors to the browser with a content-type. But that's another topic.