need your helpppp

Do you have a question? Post it now! No Registration Necessary.  Now with pictures!

Threaded View

I have a perl script named try.cgi, which is the action value of a form
containned in
test12.php file.Part of my try.cgi is as following:

#!/bin/perl -w
use strict;
use CGI;

$query=new CGI;

my $nominees=$query->param('n1');
my $nominations=$query->param('n2');
my $leaders=$query->param('n3');
my $followers=$query->param('n4');
my $filename=$query->param('f1');

print $query->header();

exec ("p1.cgi");

print <<END_HTML;


p1.cgi is a executable I get from after executing command:

gcc -o p1.cgi p1.c

in unix shell.

And the function of p1.cgi is writing word "welcome" to file op.txt

Also it works fine if I use command "p1.cgi" in unix shell.

but if I executed from test12.php, after I submit the form there, it

to page try.cgi and display the value $nominees, $nominations ......(I
just let

them get printed in <html> section of try.cgi. But it looks like does

execute the command  exec ("p1.cgi").Coze I can't see word in op.txt

I spent a lot time on this question. Could someone help me?

Thanks a lot!

Re: need your helpppp

Debbie523 wrote:

Quoted text here. Click to load it

use CGI::Carp qw;

Quoted text here. Click to load it

exec ("pl.cgi") or die "Failed to exec pl.cgi: $!";

Quoted text here. Click to load it

I'm no expert, but ...

It seems to me that the first thing is to figure out why the exec fails.
If you read the documentation (hint: perldoc -f exec) you'll see
something like the code I have inserted. There are differences between
executing a Perl script from the command line and executing it as a CGI
script, which include the setting of the PATH variable, and the
accessability of files in general. Dumping the status of the exec call
will help you diagnose this.

But I predict that you will find a second problem when you get the first
one sorted out, because I predict that when you run try.cgi from the
shell, you will not get the HTML output, except for the headers, if the
exec succeeds. See the documentation on exec for the answer to this one,

Tom Wyant

Re: need your helpppp

harryfmudd [AT] comcast [DOT] net wrote:
Quoted text here. Click to load it

Tom, thanks for your help and reply. This time after I changed the line

exec ("p1.cgi")    to
exec ("p1.cgi") or print "failed to exec p1.cgi: $!";

after execute by browser I got the line :
Failed to exec p1.cgi: No such file or directory

I guess you are right, and the browser can't find the file p1.cgi
So then I guess the set of path is wrong.
Could you tell me how I should set the path??

Re: need your helpppp

Quoted text here. Click to load it

Browsers don't run CGIs. Servers run CGIs, and forward the output to a
browser (or other user agent).

Quoted text here. Click to load it

Just supply the full path. exec('/path/to/p1.cgi');

But don't forget what I said before - exec() does not do what you're
expecting it to do. Once you get the call to exec() working, you'll
find that nothing seems to happen after p1.cgi runs. Read the docs for
exec() (i.e. perldoc -f exec) to see why, and to see how to fix that.


Cocoa programming in Perl:
Hire me! My resume:

Site Timeline