Reading SCRIPT_FILENAME thru cron

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • BG Mahesh

    Reading SCRIPT_FILENAME thru cron


    hi

    I am using PHP 5.0.4 on OpenSuse 10.x. I have the following piece of
    code,

    $sp1 = $_SERVER["SCRIPT_FILENAM E"];

    $sp1 is set correctly when I execute file.php thru the browser. But
    when I run that script thru cron [as root] $sp1 is always null.

    But on Redhat we see that $sp1 has value [when file.php is executed
    thru cron].

    We don't see any error messages on OpenSuse. What could we be doing
    wrong? Any pointers are appreciated

    B.G. Mahesh

  • Alvaro G. Vicario

    #2
    Re: Reading SCRIPT_FILENAME thru cron

    *** BG Mahesh escribió/wrote (24 Jul 2006 08:23:36 -0700):
    I am using PHP 5.0.4 on OpenSuse 10.x. I have the following piece of
    code,
    >
    $sp1 = $_SERVER["SCRIPT_FILENAM E"];
    >
    $sp1 is set correctly when I execute file.php thru the browser. But
    when I run that script thru cron [as root] $sp1 is always null.
    >
    But on Redhat we see that $sp1 has value [when file.php is executed
    thru cron].
    From PHP manual:

    $_SERVER is an array containing information such as headers, paths, and
    script locations. The entries in this array are created by the webserver.
    There is no guarantee that every webserver will provide any of these;
    servers may omit some, or provide others not listed here. That said, a
    large number of these variables are accounted for in the » CGI 1.1
    specification, so you should be able to expect those.

    The "webserver" thing is a typo, but it's true that available variables
    differ depending on where you execute the script. I suggest you try this
    code:

    <?

    print_r($_SERVE R);

    ?>


    It'll tell you what variables you can use.

    --
    -+ http://alvaro.es - Álvaro G. Vicario - Burgos, Spain
    ++ Mi sitio sobre programación web: http://bits.demogracia.com
    +- Mi web de humor con rayos UVA: http://www.demogracia.com
    --

    Comment

    • Alvaro G. Vicario

      #3
      Re: Reading SCRIPT_FILENAME thru cron

      *** Alvaro G. Vicario escribió/wrote (Mon, 24 Jul 2006 21:47:02 +0200):
      <?
      >
      print_r($_SERVE R);
      >
      ?>
      See also:

      print_r(__FILE_ _);


      --
      -+ http://alvaro.es - Álvaro G. Vicario - Burgos, Spain
      ++ Mi sitio sobre programación web: http://bits.demogracia.com
      +- Mi web de humor con rayos UVA: http://www.demogracia.com
      --

      Comment

      • BG Mahesh

        #4
        Re: Reading SCRIPT_FILENAME thru cron


        Alvaro G. Vicario wrote:
        *** BG Mahesh escribió/wrote (24 Jul 2006 08:23:36 -0700):
        I am using PHP 5.0.4 on OpenSuse 10.x. I have the following piece of
        code,

        $sp1 = $_SERVER["SCRIPT_FILENAM E"];

        $sp1 is set correctly when I execute file.php thru the browser. But
        when I run that script thru cron [as root] $sp1 is always null.

        But on Redhat we see that $sp1 has value [when file.php is executed
        thru cron].
        >
        From PHP manual:
        >
        $_SERVER is an array containing information such as headers, paths, and
        script locations. The entries in this array are created by the webserver.
        There is no guarantee that every webserver will provide any of these;
        servers may omit some, or provide others not listed here. That said, a
        large number of these variables are accounted for in the » CGI 1.1
        specification, so you should be able to expect those.
        >
        The "webserver" thing is a typo, but it's true that available variables
        differ depending on where you execute the script. I suggest you try this
        code:
        >
        <?
        >
        print_r($_SERVE R);
        >
        ?>
        >
        >
        When I run this script from the command line or the web it does show
        SCRIPT_FILENAME [with the correct value]. But when the script runs from
        cron it is NULL. Is this normal behavior?

        -- Mahesh
        Greynium owns leading portals in India - Click.in, Boldsky, Drivespark, Filmibeat,Careerindia, Gizbot. Click.in is India\'s first online Indian languages classifieds.


        Comment

        • Jerry Stuckle

          #5
          Re: Reading SCRIPT_FILENAME thru cron

          BG Mahesh wrote:
          Alvaro G. Vicario wrote:
          >
          >>*** BG Mahesh escribió/wrote (24 Jul 2006 08:23:36 -0700):
          >>
          >>>I am using PHP 5.0.4 on OpenSuse 10.x. I have the following piece of
          >>>code,
          >>>
          >>>$sp1 = $_SERVER["SCRIPT_FILENAM E"];
          >>>
          >>>$sp1 is set correctly when I execute file.php thru the browser. But
          >>>when I run that script thru cron [as root] $sp1 is always null.
          >>>
          >>>But on Redhat we see that $sp1 has value [when file.php is executed
          >>>thru cron].
          >>
          >>From PHP manual:
          >>
          >>$_SERVER is an array containing information such as headers, paths, and
          >>script locations. The entries in this array are created by the webserver.
          >>There is no guarantee that every webserver will provide any of these;
          >>servers may omit some, or provide others not listed here. That said, a
          >>large number of these variables are accounted for in the » CGI 1.1
          >>specification , so you should be able to expect those.
          >>
          >>The "webserver" thing is a typo, but it's true that available variables
          >>differ depending on where you execute the script. I suggest you try this
          >>code:
          >>
          >><?
          >>
          >>print_r($_SER VER);
          >>
          >>?>
          >>
          >>
          >
          When I run this script from the command line or the web it does show
          SCRIPT_FILENAME [with the correct value]. But when the script runs from
          cron it is NULL. Is this normal behavior?
          >
          -- Mahesh
          Greynium owns leading portals in India - Click.in, Boldsky, Drivespark, Filmibeat,Careerindia, Gizbot. Click.in is India\'s first online Indian languages classifieds.

          >
          Is the cron job calling the page through the web server? Or is it just
          executing the script?

          $_SERVER is filled in by the web server - and it won't exist if you
          don't access the page though the server (http://...).


          --
          =============== ===
          Remove the "x" from my email address
          Jerry Stuckle
          JDS Computer Training Corp.
          jstucklex@attgl obal.net
          =============== ===

          Comment

          • Alvaro G. Vicario

            #6
            Re: Reading SCRIPT_FILENAME thru cron

            *** Jerry Stuckle escribió/wrote (Mon, 24 Jul 2006 23:16:11 -0400):
            $_SERVER is filled in by the web server - and it won't exist if you
            don't access the page though the server (http://...).
            Not necessarily. I do get quite a large $_SERVER variable when running PHP
            from command line. But as manual warns available values may vary.


            --
            -+ http://alvaro.es - Álvaro G. Vicario - Burgos, Spain
            ++ Mi sitio sobre programación web: http://bits.demogracia.com
            +- Mi web de humor con rayos UVA: http://www.demogracia.com
            --

            Comment

            • BG Mahesh

              #7
              Re: Reading SCRIPT_FILENAME thru cron


              When I run this script from the command line or the web it does show
              SCRIPT_FILENAME [with the correct value]. But when the script runs from
              cron it is NULL. Is this normal behavior?

              -- Mahesh
              Greynium owns leading portals in India - Click.in, Boldsky, Drivespark, Filmibeat,Careerindia, Gizbot. Click.in is India\'s first online Indian languages classifieds.
              >
              Is the cron job calling the page through the web server? Or is it just
              executing the script?
              >
              $_SERVER is filled in by the web server - and it won't exist if you
              don't access the page though the server (http://...).
              >
              >
              hi

              I think I found the problem. On the machine where things work I have
              PHP-CLI and the other one that was giving me grief had PHP-CGI.

              Where does one find rpms for PHP-5.0.4-CLI [OpenSuse]?

              -- Mahesh


              Comment

              Working...