in reply to Re: How to do system calls in cgi programs
in thread How to do system calls in cgi programs

This cretainly cleans up the logic. Tidy! But the resulting behavior is unchanged. No output from system(). I added an else to confirm that all went well in case of return of 0. No print out there either. Script runs and no reports! Permissions are everywhere wide open and Kreports.plx runs from command line on cgi-bin or at home.
  • Comment on Re: Re: How to do system calls in cgi programs

Replies are listed 'Best First'.
Re: Re: Re: How to do system calls in cgi programs
by tachyon (Chancellor) on Jan 04, 2003 at 22:48 UTC

    You will have a path/permissions problem. Debugging 101 - simplify and distill. Make a very simple program:

    #!/usr/bin/perl print "<h1>That worked!</h1>";

    Exec this via a system call from your CGI using a full path call - it should work without problems. If that is the case you have just isolated the problem to you reports script. You need to understand that the user, permissions and PATH on the command line often different from the CGI case. How they differ is setup dependent. Note that -T or taint mode stops you from doing things like system(param('script_to_exec')) as you need to untaint the value before you will be allowed to use it to do dangerous things.

    It seems highly likely that you are not checking for the success of open() or DBI->connect within you report script (and these are failing) but without seeing code this is just a guess.

    cheers

    tachyon

    s&&rsenoyhcatreve&&&s&n.+t&"$'$`$\"$\&"&ee&&y&srve&&d&&print

      This has been resolved! Changing 'system' to 'exec' and removing the taint option-T allowed me to see that the permissions of the Report dir would not allow writing by the CGI process. Thanks very much Perl Monks!