By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
432,175 Members | 1,689 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 432,175 IT Pros & Developers. It's quick & easy.

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

P: 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
Jul 17 '05 #1
Share this Question
Share on Google+
2 Replies


P: n/a
Geoff Winkless wrote:
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


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.
js*******@attglobal.net
==================
Jul 17 '05 #2

P: n/a
Jerry Stuckle wrote:
$_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.


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
Jul 17 '05 #3

This discussion thread is closed

Replies have been disabled for this discussion.