Parsing a php include (which also contains php code) - or "Reparsing" the php file

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Steven Borrelli

    Parsing a php include (which also contains php code) - or "Reparsing" the php file

    Hello,

    I am using the <?php include() ?statement on my website for
    organizational purposes. However, one of my includes contains some
    PHP code. Is there any way for the server to actually parse the
    include? I've tried this before, and it did not parse the include.
    Rather, it included the file as just plain ASCII.
    =============== ========
    /*EXAMPLE 1*/
    /*index.php*/
    ....
    <?php include('global/includes/footer.inc') ?>
    ....

    /*footer.inc*/
    ....
    <p>&copy 1993-<?php echo date("Y") ?Kingswood School. All rights
    reserved.</p>
    ....

    /*EXAMPLE 2*/
    /*index.php*/
    ....
    <?php include('global/includes/lastmod.php') ?>
    ....

    /*lastmod.php*/
    ....
    <?php
    echo "This file was last modified: ";
    echo strftime("%A %B %d %Y");
    include('whatev erfilename.inc' );
    ?>

    =============== ==============

    I would like to be able to parse the include if it has php code, and
    in some cases, create nesting includes (an include within an
    include). Is this even possible? Any ideas?

    Any help is certainly appreciated. Thanks!

    Steven Borrelli
    Web Developer
    Kingswood School

  • J.O. Aho

    #2
    Re: Parsing a php include (which also contains php code) - or &quot;Reparsing &quot;the php file

    Steven Borrelli wrote:
    Hello,
    >
    I am using the <?php include() ?statement on my website for
    organizational purposes. However, one of my includes contains some
    PHP code. Is there any way for the server to actually parse the
    include? I've tried this before, and it did not parse the include.
    Rather, it included the file as just plain ASCII.
    If the main page is a php file, include will also make the included page to be
    parsed by php.


    I do suggest you use semicolon after each command, no matter if it's alone
    between the php-tags or not.


    It's always better to use .php as the file extension on the included files
    too, this as .inc normally don't be set in the server to be parsed, which
    leads to that if a person gives and url like



    they will see the full source, and if you happen to have your database
    login/password stored in the file, then they will know how to access it.


    If you don't already, it's quite good to run apache web server and avoid iss.

    --

    //Aho

    Comment

    • Tim Streater

      #3
      Re: Parsing a php include (which also contains php code) - or &quot;Reparsing &quot; the php file

      In article <1182309379.784 775.138420@q75g 2000hsh.googleg roups.com>,
      Steven Borrelli <sborrelli8@gma il.comwrote:
      Hello,
      >
      I am using the <?php include() ?statement on my website for
      organizational purposes. However, one of my includes contains some
      PHP code. Is there any way for the server to actually parse the
      include? I've tried this before, and it did not parse the include.
      Rather, it included the file as just plain ASCII.
      =============== ========
      /*EXAMPLE 1*/
      /*index.php*/
      ...
      <?php include('global/includes/footer.inc') ?>
      ...
      >
      /*footer.inc*/
      ...
      <p>&copy 1993-<?php echo date("Y") ?Kingswood School. All rights
      reserved.</p>
      ...
      >
      /*EXAMPLE 2*/
      /*index.php*/
      ...
      <?php include('global/includes/lastmod.php') ?>
      ...
      >
      /*lastmod.php*/
      ...
      <?php
      echo "This file was last modified: ";
      echo strftime("%A %B %d %Y");
      include('whatev erfilename.inc' );
      ?>
      >
      =============== ==============
      >
      I would like to be able to parse the include if it has php code, and
      in some cases, create nesting includes (an include within an
      include). Is this even possible? Any ideas?
      >
      Any help is certainly appreciated. Thanks!
      >
      Steven Borrelli
      Web Developer
      Kingswood School
      Should be parsed as long as the include file has the <? and ?tags.
      Most of my includes are tagged .inc and it works fine.

      Comment

      • Jerry Stuckle

        #4
        Re: Parsing a php include (which also contains php code) - or &quot;Reparsing &quot;the php file

        Tim Streater wrote:
        In article <1182309379.784 775.138420@q75g 2000hsh.googleg roups.com>,
        Steven Borrelli <sborrelli8@gma il.comwrote:
        >
        >Hello,
        >>
        >I am using the <?php include() ?statement on my website for
        >organization al purposes. However, one of my includes contains some
        >PHP code. Is there any way for the server to actually parse the
        >include? I've tried this before, and it did not parse the include.
        >Rather, it included the file as just plain ASCII.
        >============== =========
        >/*EXAMPLE 1*/
        >/*index.php*/
        >...
        ><?php include('global/includes/footer.inc') ?>
        >...
        >>
        >/*footer.inc*/
        >...
        ><p>&copy 1993-<?php echo date("Y") ?Kingswood School. All rights
        >reserved.</p>
        >...
        >>
        >/*EXAMPLE 2*/
        >/*index.php*/
        >...
        ><?php include('global/includes/lastmod.php') ?>
        >...
        >>
        >/*lastmod.php*/
        >...
        ><?php
        > echo "This file was last modified: ";
        > echo strftime("%A %B %d %Y");
        > include('whatev erfilename.inc' );
        >?>
        >>
        >============== ===============
        >>
        >I would like to be able to parse the include if it has php code, and
        >in some cases, create nesting includes (an include within an
        >include). Is this even possible? Any ideas?
        >>
        >Any help is certainly appreciated. Thanks!
        >>
        >Steven Borrelli
        >Web Developer
        >Kingswood School
        >
        Should be parsed as long as the include file has the <? and ?tags.
        Most of my includes are tagged .inc and it works fine.
        It depends completely on how your webserver is set up.

        But .php files should be parsed by every webserver which has php installed.

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

        Comment

        • gosha bine

          #5
          Re: Parsing a php include (which also contains php code) - or &quot;Reparsing &quot;the php file

          On 20.06.2007 13:40 Jerry Stuckle wrote:
          Tim Streater wrote:
          >In article <1182309379.784 775.138420@q75g 2000hsh.googleg roups.com>,
          > Steven Borrelli <sborrelli8@gma il.comwrote:
          >>
          >>Hello,
          >>>
          >>I am using the <?php include() ?statement on my website for
          >>organizationa l purposes. However, one of my includes contains some
          >>PHP code. Is there any way for the server to actually parse the
          >>include? I've tried this before, and it did not parse the include.
          >>Rather, it included the file as just plain ASCII.
          >>============= ==========
          >>/*EXAMPLE 1*/
          >>/*index.php*/
          >>...
          >><?php include('global/includes/footer.inc') ?>
          >>...
          >>>
          >>/*footer.inc*/
          >>...
          >><p>&copy 1993-<?php echo date("Y") ?Kingswood School. All rights
          >>reserved.</p>
          >>...
          >>>
          >>/*EXAMPLE 2*/
          >>/*index.php*/
          >>...
          >><?php include('global/includes/lastmod.php') ?>
          >>...
          >>>
          >>/*lastmod.php*/
          >>...
          >><?php
          >> echo "This file was last modified: ";
          >> echo strftime("%A %B %d %Y");
          >> include('whatev erfilename.inc' );
          >>?>
          >>>
          >>============= =============== =
          >>>
          >>I would like to be able to parse the include if it has php code, and
          >>in some cases, create nesting includes (an include within an
          >>include). Is this even possible? Any ideas?
          >>>
          >>Any help is certainly appreciated. Thanks!
          >>>
          >>Steven Borrelli
          >>Web Developer
          >>Kingswood School
          >>
          >Should be parsed as long as the include file has the <? and ?tags.
          >Most of my includes are tagged .inc and it works fine.
          >
          It depends completely on how your webserver is set up.
          >
          But .php files should be parsed by every webserver which has php installed.
          >
          You're confusing php include() and server-side includes or whatever. php
          include() doesn't involve the web server (unless you're including a http
          url).

          --
          gosha bine

          extended php parser ~ http://code.google.com/p/pihipi
          blok ~ http://www.tagarga.com/blok

          Comment

          • gosha bine

            #6
            Re: Parsing a php include (which also contains php code) - or &quot;Reparsing &quot;the php file

            On 20.06.2007 05:16 Steven Borrelli wrote:
            Hello,
            >
            I am using the <?php include() ?statement on my website for
            organizational purposes. However, one of my includes contains some
            PHP code. Is there any way for the server to actually parse the
            include? I've tried this before, and it did not parse the include.
            Rather, it included the file as just plain ASCII.
            =============== ========
            /*EXAMPLE 1*/
            /*index.php*/
            ...
            <?php include('global/includes/footer.inc') ?>
            ...
            >
            /*footer.inc*/
            ...
            <p>&copy 1993-<?php echo date("Y") ?Kingswood School. All rights
            reserved.</p>
            ...
            >
            /*EXAMPLE 2*/
            /*index.php*/
            ...
            <?php include('global/includes/lastmod.php') ?>
            ...
            >
            /*lastmod.php*/
            ...
            <?php
            echo "This file was last modified: ";
            echo strftime("%A %B %d %Y");
            include('whatev erfilename.inc' );
            ?>
            >
            =============== ==============
            >
            I would like to be able to parse the include if it has php code, and
            in some cases, create nesting includes (an include within an
            include). Is this even possible? Any ideas?
            >
            Any help is certainly appreciated. Thanks!
            >
            Steven Borrelli
            Web Developer
            Kingswood School
            >
            Actually, includes are always parsed and your code should work
            perfectly. Double-check your configuration.

            --
            gosha bine

            extended php parser ~ http://code.google.com/p/pihipi
            blok ~ http://www.tagarga.com/blok

            Comment

            • Jerry Stuckle

              #7
              Re: Parsing a php include (which also contains php code) - or &quot;Reparsing &quot;the php file

              gosha bine wrote:
              On 20.06.2007 13:40 Jerry Stuckle wrote:
              >Tim Streater wrote:
              >>In article <1182309379.784 775.138420@q75g 2000hsh.googleg roups.com>,
              >> Steven Borrelli <sborrelli8@gma il.comwrote:
              >>>
              >>>Hello,
              >>>>
              >>>I am using the <?php include() ?statement on my website for
              >>>organization al purposes. However, one of my includes contains some
              >>>PHP code. Is there any way for the server to actually parse the
              >>>include? I've tried this before, and it did not parse the include.
              >>>Rather, it included the file as just plain ASCII.
              >>>============ ===========
              >>>/*EXAMPLE 1*/
              >>>/*index.php*/
              >>>...
              >>><?php include('global/includes/footer.inc') ?>
              >>>...
              >>>>
              >>>/*footer.inc*/
              >>>...
              >>><p>&copy 1993-<?php echo date("Y") ?Kingswood School. All rights
              >>>reserved.</p>
              >>>...
              >>>>
              >>>/*EXAMPLE 2*/
              >>>/*index.php*/
              >>>...
              >>><?php include('global/includes/lastmod.php') ?>
              >>>...
              >>>>
              >>>/*lastmod.php*/
              >>>...
              >>><?php
              >>> echo "This file was last modified: ";
              >>> echo strftime("%A %B %d %Y");
              >>> include('whatev erfilename.inc' );
              >>>?>
              >>>>
              >>>============ =============== ==
              >>>>
              >>>I would like to be able to parse the include if it has php code, and
              >>>in some cases, create nesting includes (an include within an
              >>>include). Is this even possible? Any ideas?
              >>>>
              >>>Any help is certainly appreciated. Thanks!
              >>>>
              >>>Steven Borrelli
              >>>Web Developer
              >>>Kingswood School
              >>>
              >>Should be parsed as long as the include file has the <? and ?tags.
              >>Most of my includes are tagged .inc and it works fine.
              >>
              >It depends completely on how your webserver is set up.
              >>
              >But .php files should be parsed by every webserver which has php
              >installed.
              >>
              >
              You're confusing php include() and server-side includes or whatever. php
              include() doesn't involve the web server (unless you're including a http
              url).
              >
              No, I'm not.

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

              Comment

              • Toby A Inkster

                #8
                Re: Parsing a php include (which also contains php code) - or&quot;Reparsi ng&quot; the php file

                Jerry Stuckle wrote:
                It depends completely on how your webserver is set up.
                >
                But .php files should be parsed by every webserver which has php installed.
                All files included with include(), require(), include_once() and
                require_once() are parsed as PHP files. This is not dependent on
                the filename or web server.

                --
                Toby A Inkster BSc (Hons) ARCS
                [Geek of HTML/SQL/Perl/PHP/Python/Apache/Linux]
                [OS: Linux 2.6.12-12mdksmp, up 10:37.]

                dict, thes & ency

                Comment

                • Jerry Stuckle

                  #9
                  Re: Parsing a php include (which also contains php code) - or &quot;Reparsing &quot;the php file

                  Toby A Inkster wrote:
                  Jerry Stuckle wrote:
                  >
                  >It depends completely on how your webserver is set up.
                  >>
                  >But .php files should be parsed by every webserver which has php installed.
                  >
                  All files included with include(), require(), include_once() and
                  require_once() are parsed as PHP files. This is not dependent on
                  the filename or web server.
                  >
                  Toby,

                  Interesting, because I've seen this before, and others have commented on
                  it, also. Maybe it was a bug in an older version of PHP - it's been a
                  while ago. But I had one local cohort who was using php includes (not
                  SSI), and his files were not being parsed when they had .inc extensions.

                  Changing them to .php worked. And no, I'm sure he didn't use SSI.

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

                  Comment

                  • Michael Fesser

                    #10
                    Re: Parsing a php include (which also contains php code) - or &quot;Reparsing &quot; the php file

                    ..oO(Jerry Stuckle)
                    >Interesting, because I've seen this before, and others have commented on
                    >it, also. Maybe it was a bug in an older version of PHP - it's been a
                    >while ago. But I had one local cohort who was using php includes (not
                    >SSI), and his files were not being parsed when they had .inc extensions.
                    Either a bug or something heavily wrong on the server. As mentioned in
                    another post -- PHP includes have _nothing_ to do with the web server,
                    they are entirely handled by the interpreter. Since you explicitly write
                    their name in the include statement, you can call them whatever you
                    like:

                    require_once 'foo.bar';
                    require_once '42';
                    require_once '.o0o.';

                    All valid.

                    Micha

                    Comment

                    • C.

                      #11
                      Re: Parsing a php include (which also contains php code) - or &quot;Reparsing &quot; the php file

                      On 20 Jun, 12:40, Jerry Stuckle <jstuck...@attg lobal.netwrote:
                      Tim Streater wrote:
                      In article <1182309379.784 775.138...@q75g 2000hsh.googleg roups.com>,
                      Steven Borrelli <sborrel...@gma il.comwrote:
                      >
                      Hello,
                      >
                      I am using the <?php include() ?statement on my website for
                      organizational purposes. However, one of my includes contains some
                      PHP code. Is there any way for the server to actually parse the
                      include? I've tried this before, and it did not parse the include.
                      Rather, it included the file as just plain ASCII.
                      =============== ========
                      /*EXAMPLE 1*/
                      /*index.php*/
                      ...
                      <?php include('global/includes/footer.inc') ?>
                      ...
                      >
                      /*footer.inc*/
                      ...
                      <p>&copy 1993-<?php echo date("Y") ?Kingswood School. All rights
                      reserved.</p>
                      ...
                      >
                      /*EXAMPLE 2*/
                      /*index.php*/
                      ...
                      <?php include('global/includes/lastmod.php') ?>
                      ...
                      >
                      /*lastmod.php*/
                      ...
                      <?php
                      echo "This file was last modified: ";
                      echo strftime("%A %B %d %Y");
                      include('whatev erfilename.inc' );
                      ?>
                      >
                      =============== ==============
                      >
                      I would like to be able to parse the include if it has php code, and
                      in some cases, create nesting includes (an include within an
                      include). Is this even possible? Any ideas?
                      >
                      Any help is certainly appreciated. Thanks!
                      >
                      Steven Borrelli
                      Web Developer
                      Kingswood School
                      >
                      Should be parsed as long as the include file has the <? and ?tags.
                      Most of my includes are tagged .inc and it works fine.
                      >
                      It depends completely on how your webserver is set up.
                      >
                      Not for an includED file - the web server has no visibility of it.

                      C.


                      Comment

                      • J.O. Aho

                        #12
                        Re: Parsing a php include (which also contains php code) - or &quot;Reparsing &quot;the php file

                        C. wrote:
                        On 20 Jun, 12:40, Jerry Stuckle <jstuck...@attg lobal.netwrote:
                        >Tim Streater wrote:
                        >>In article <1182309379.784 775.138...@q75g 2000hsh.googleg roups.com>,
                        >> Steven Borrelli <sborrel...@gma il.comwrote:
                        >>>Hello,
                        >>>I am using the <?php include() ?statement on my website for
                        >>>organization al purposes. However, one of my includes contains some
                        >>>PHP code. Is there any way for the server to actually parse the
                        >>>include? I've tried this before, and it did not parse the include.
                        >>>Rather, it included the file as just plain ASCII.
                        >>>============ ===========
                        >>>/*EXAMPLE 1*/
                        >>>/*index.php*/
                        >>>...
                        >>><?php include('global/includes/footer.inc') ?>
                        >>>...
                        >>>/*footer.inc*/
                        >>>...
                        >>><p>&copy 1993-<?php echo date("Y") ?Kingswood School. All rights
                        >>>reserved.</p>
                        >>>...
                        >>>/*EXAMPLE 2*/
                        >>>/*index.php*/
                        >>>...
                        >>><?php include('global/includes/lastmod.php') ?>
                        >>>...
                        >>>/*lastmod.php*/
                        >>>...
                        >>><?php
                        >>> echo "This file was last modified: ";
                        >>> echo strftime("%A %B %d %Y");
                        >>> include('whatev erfilename.inc' );
                        >>>?>
                        >>>============ =============== ==
                        >>>I would like to be able to parse the include if it has php code, and
                        >>>in some cases, create nesting includes (an include within an
                        >>>include). Is this even possible? Any ideas?
                        >>>Any help is certainly appreciated. Thanks!
                        >>>Steven Borrelli
                        >>>Web Developer
                        >>>Kingswood School
                        >>Should be parsed as long as the include file has the <? and ?tags.
                        >>Most of my includes are tagged .inc and it works fine.
                        >It depends completely on how your webserver is set up.
                        >>
                        >
                        Not for an includED file - the web server has no visibility of it.
                        It's true, the file extension don't matter when you include files in a php
                        file, but by default a *.inc file won't be parsed if it's directly accessed

                        example: http://www.example.net/myincludefile.inc

                        This can be a security issue if you store database login/passwords in a *.inc
                        file, which you should avoid to use any other extention than *.php, which will
                        be parsed on a php enabled server.

                        --

                        //Aho

                        Comment

                        • Michael Fesser

                          #13
                          Re: Parsing a php include (which also contains php code) - or &quot;Reparsing &quot; the php file

                          ..oO(J.O. Aho)
                          >It's true, the file extension don't matter when you include files in a php
                          >file, but by default a *.inc file won't be parsed if it's directly accessed
                          >
                          >example: http://www.example.net/myincludefile.inc
                          >
                          >This can be a security issue if you store database login/passwords in a *.inc
                          >file, which you should avoid to use any other extention than *.php, which will
                          >be parsed on a php enabled server.
                          Of course these files should be stored outside the document root.

                          Even a .php extension is no guarantee that no visitors will ever be able
                          to view that file. A server update, a misconfiguratio n, whatever --
                          there are some situations where even a .php file could be delivered
                          unparsed.

                          Micha

                          Comment

                          • Steven Borrelli

                            #14
                            Re: Parsing a php include (which also contains php code) - or &quot;Reparsing &quot; the php file

                            On Jun 21, 8:31 am, Michael Fesser <neti...@gmx.de wrote:
                            .oO(Jerry Stuckle)
                            >
                            Interesting, because I've seen this before, and others have commented on
                            it, also. Maybe it was a bug in an older version of PHP - it's been a
                            while ago. But I had one local cohort who was using php includes (not
                            SSI), and his files were not being parsed when they had .inc extensions.
                            >
                            Either a bug or something heavily wrong on the server. As mentioned in
                            another post -- PHP includes have _nothing_ to do with the web server,
                            they are entirely handled by the interpreter. Since you explicitly write
                            their name in the include statement, you can call them whatever you
                            like:
                            >
                            require_once 'foo.bar';
                            require_once '42';
                            require_once '.o0o.';
                            >
                            All valid.
                            >
                            Micha
                            When you say the PHP includes have nothing to do with the web server,
                            that is somewhat confusing.

                            If I have my index.php, and I have a call to a php include within
                            that, and also another php include within the first include, and all
                            the includes have the .php file extension, will everything be parsed
                            and appear like it's supposed to? And it won't work if the file
                            extension is different?

                            In other words, is it possible to make nesting php includes?

                            Steven

                            Comment

                            • J.O. Aho

                              #15
                              Re: Parsing a php include (which also contains php code) - or &quot;Reparsing &quot;the php file

                              Steven Borrelli wrote:
                              When you say the PHP includes have nothing to do with the web server,
                              that is somewhat confusing.
                              The web server won't load the included files, it won't have a clue what has
                              been included, as this is handled by the PHP parser module.

                              If I have my index.php, and I have a call to a php include within
                              that, and also another php include within the first include, and all
                              the includes have the .php file extension, will everything be parsed
                              and appear like it's supposed to?
                              The extension has nothing to do with if the file will be parsed or not, but of
                              "security" reasons it's vise to set the php extension to the include files too.

                              When you include a php script, see to that the PHP code in that file has the
                              '<?PHP' and '?>' tags, or else the php code will be treated as plain text.

                              example:

                              --- file1.inc.php ---
                              <?PHP
                              echo "Hello";
                              ?>
                              --- eof ---


                              --- file2.inc.php ---
                              echo "Hello";
                              --- eof ---


                              --- index.php ---
                              <html><head><ti tle>php include test</title></head><body>
                              First include: <?PHP include 'file1.inc.php' ; ?><br>
                              Second include: <?PHP include 'file2.inc.php' ; ?><br>
                              </body></html>
                              --- eof ---


                              If you run this small example you will notice that the output will look like this:

                              First include: Hello
                              Second include: echo "Hello";


                              In other words, is it possible to make nesting php includes?
                              Sure you can, there is no problems with that at all and it's justed quite a
                              lot on the most big projects you can find (see freshmeat.net).


                              --

                              //Aho

                              Comment

                              Working...