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

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Geoff Winkless

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

    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='t est=1&wibble=2' ;export REQUEST_METHOD= GET;php -n
    -r 'print_r($_REQU EST);'
    Array
    (
    )
    $

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

    Thanks!

    Geoff
  • Jerry Stuckle

    #2
    Re: getting arguments from a shellscript into $_REQUEST when fakingcall from 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='t est=1&wibble=2' ;export REQUEST_METHOD= GET;php -n
    > -r 'print_r($_REQU EST);'
    > 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@attgl obal.net
    =============== ===

    Comment

    • Geoff Winkless

      #3
      Re: getting arguments from a shellscript into $_REQUEST when fakingcall from 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

      Comment

      Working...