http://www.perlmonks.org?node_id=827239


in reply to getting sometimes empty cgi form with post

Hi david2008,

Have you tried the following? ...

use CGI::Carp qw(fatalsToBrowser);

It sends fatal errors to the web page, which is a great help when you're debugging.

You can also look at the logs, which will be some place like /var/log/httpd if you're on a Linux system.  As user "root", do:

# tail -100f /var/log/http/error_log
and see if you get any errors that way.

Finally, if you don't have:

use strict; use warnings;

near the beginning of the CGI script(s), I'd strongly recommend putting them in.  They will often help you catch problems you wouldn't otherwise have noticed.

Good luck!


s''(q.S:$/9=(T1';s;(..)(..);$..=substr+crypt($1,$2),2,3;eg;print$..$/

Replies are listed 'Best First'.
Re^2: getting sometimes empty cgi form with post
by david2008 (Scribe) on Mar 07, 2010 at 15:14 UTC
    Hi liverpole, Thank you for your quick reply.
    I have no error in the error log.
    Even the cgi_error function does not tell anything.
    Surely i use strict and warnings.
    Thanks, David
      Yes, surely you do! :)

      Well, I'm out of ideas.  Unless you've got some code that you can post, I'm afraid I don't have a clue what could be wrong.

      Here's a suggestion -- make a copy of your program, and work on the copy (to avoid messing up the original).  Assuming the problem persists, continue to make the program smaller and smaller until one of several things happen:

      1. You figure out what the problem was.
      2. The problem goes away.
      3. The problem is still there but the program is incredibly short, and self-contained.

      Now in the first case, you've solved the problem on your own.  Sometimes it was something amazingly dumb (eg. a typo), and you've avoided the embarrassment of anyone else knowing what you did.  But at least you solved it, and probably had some fun doing so.  Now go apply the solution to the original program.

      In the second case, you've sort of solved the problem, but you just don't know how yet.  Look carefully.  Did you make few enough changes that you can undo something and make the problem reoccur?  Perhaps you've narrowed it down to the point that you have some keyword(s) that Google will help you with.  (Update:  If you still can't figure out why the problem went away, you can always come back here for more help, armed with a lot more information than you had previously).

      In the final case, you're still not done, but you're very close.  Assuming the code is fairly small and self-contained, all of Perlmonks will be eager to help.

      By "self-contained", I mean of course that there can be no external data that you haven't provided.  If you have files that the script depends on, either show them (and make sure they're as short as you can possibly make them!), or, even better, include them as data internally to your program.  Remember, we don't necessarily want to see the original code, we'd prefer to see the shortest example you can provide that still fails.

      There's nothing more fun than a challenge, but only when the problem can be recreated by anyone.  Yours unfortunately isn't yet, as you haven't shown any code, but if you work at it until you can post some example, we can very likely help you with the rest!


      s''(q.S:$/9=(T1';s;(..)(..);$..=substr+crypt($1,$2),2,3;eg;print$..$/