Connecting Tech Pros Worldwide Help | Site Map

getting arguments from a shellscript into $_REQUEST when faking callfrom a web server

  #1  
Old July 17th, 2005, 03:15 PM
Geoff Winkless
Guest
 
Posts: n/a
Hi

My knowledge of php is regrettably poor but I need to call a third-party
php script from within a bash cgi script (don't ask why, it's a long
story). Now normally (with eg perl-cgi) to do this I need to set
QUERY_STRING and REQUEST_METHOD appropriately; however with php this
doesn't work, the $_REQUEST array is empty.

$ export QUERY_STRING='test=1&wibble=2';export REQUEST_METHOD=GET;php -n
-r 'print_r($_REQUEST);'
Array
(
)
$

What do I need to set in order for the _REQUEST variable to be populated
correctly?

Thanks!

Geoff
  #2  
Old July 17th, 2005, 03:15 PM
Jerry Stuckle
Guest
 
Posts: n/a

re: getting arguments from a shellscript into $_REQUEST when faking callfrom a web server


Geoff Winkless wrote:[color=blue]
> Hi
>
> My knowledge of php is regrettably poor but I need to call a third-party
> php script from within a bash cgi script (don't ask why, it's a long
> story). Now normally (with eg perl-cgi) to do this I need to set
> QUERY_STRING and REQUEST_METHOD appropriately; however with php this
> doesn't work, the $_REQUEST array is empty.
>
> $ export QUERY_STRING='test=1&wibble=2';export REQUEST_METHOD=GET;php -n
> -r 'print_r($_REQUEST);'
> Array
> (
> )
> $
>
> What do I need to set in order for the _REQUEST variable to be populated
> correctly?
>
> Thanks!
>
> Geoff[/color]

Geoff,

$_REQUEST is filled in by the web server interface. They do not come from the
environment. There also are no $_GET, $_SERVER or similar web server associated
values. If you needed these, you would have to call another PHP program to set
the values, then include the program you want to run.

If you want to write them to the environment, you can get them through the $_ENV
array. But an easier way is to just use argc and argv to access the values as
command line variables, i.e.

myprog test=1 wibble=2

The program will receive:

argc=2
argv[0] = "myprog"
argv[1] = "test=1"
argv[2] = "wibble=2"

--
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
jstucklex@attglobal.net
==================
  #3  
Old July 17th, 2005, 03:15 PM
Geoff Winkless
Guest
 
Posts: n/a

re: getting arguments from a shellscript into $_REQUEST when faking callfrom a web server


Jerry Stuckle wrote:[color=blue]
> $_REQUEST is filled in by the web server interface. They do not come
> from the environment. There also are no $_GET, $_SERVER or similar web
> server associated values. If you needed these, you would have to call
> another PHP program to set the values, then include the program you want
> to run.[/color]

Mmm. I managed to get it to run by using

php -r '$_REQUEST["test"]=1; include myprog.php;'

but I wasn't 100% happy with it.

Thanks anyway :)

Geoff
Closed Thread