Problems passing variables to include file.

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • harryusa
    New Member
    • Oct 2008
    • 14

    Problems passing variables to include file.

    I don't know why I cannot get this to work. I want to include an external file in a script that produces an HTML table and is populated based on a few variables from the calling script. I thought php compiled in line, but after having no luck I tried executing the script by calling it by itself and it worked correctly filling itself with the correct SESSION variables. Maybe it's my syntax but I have tried Session variables, I think I used global correctly but I am not sure. I need to pass two items,
    [PHP]
    $imagenumber; // an image number in a variable called
    $_SESSION["directoryl ist"]; // (Which I split to get the correct path to the image)
    [/PHP]
  • Markus
    Recognized Expert Expert
    • Jun 2007
    • 6092

    #2
    If you're including a file, that file inherits the variables of it's parent. Consider this:

    file1.php
    Code:
    <?php
    
    define("HELLO", "Hello from file1");
    
    include("file2.php");
    
    ?>
    and in file2.php
    Code:
    <?php
    
    echo HELLO;
    // would print: Hello from file1
    ?>

    Comment

    • harryusa
      New Member
      • Oct 2008
      • 14

      #3
      file1.php
      [PHP]
      define("IMAGENU MBERCONST",$_GE T["imagenumbe r"]);[/PHP]

      And what's going on with the SESSION variable? I initialized my session but it doesn't want to pass the $_SESSION["home"] variable?

      include("file2. php");
      [PHP]
      <? ini_set("sessio n.cookie_domain ",substr($_SERV ER[HTTP_HOST],3));
      session_start() ;
      $_SESSION["home"];
      $dirlist = split ('\/', $_SESSION["home"]);

      // ***ABBREVIATED* *****
      echo'<img HEIGHT="100", WIDTH="60" src="http://www.website.com/';
      echo "$dirlist[1]/$dirlist[2]/tn_";
      echo IMAGENUMBERCONS T;
      echo'">';
      ?><html>
      </table>
      [/PHP]
      This gives me the incorrect path to the image:

      As you can see the directories aren't present and IMAGENUMBERCONS T is a literal.

      Comment

      • harryusa
        New Member
        • Oct 2008
        • 14

        #4
        IMPORTANT THING TO REMEMBER ABOUT THE include("xxx"); function!
        I was using the URL as a path to call the script when I should have been using the relative server path ie:
        [PHP] include("/home/4/4/a/2769/2769/public_html/file2.php"); [/PHP]

        NOT [PHP]("http://www.website.com/file2.php");[/PHP]
        The relative path works fine for including html for headers and footers and such but I guess all SESSION variables are not available when using this path even if you use [PHP]<? session_start() ;[/PHP]
        Which, by the way, I DID NOT have to use (session_start( );)in the included file's head.
        Thanks for the insight!

        Comment

        • Markus
          Recognized Expert Expert
          • Jun 2007
          • 6092

          #5
          I don't see the point in using SESSION, as you're not actually leaving the page. But I think I'm not understanding something here..

          Comment

          • ak1dnar
            Recognized Expert Top Contributor
            • Jan 2007
            • 1584

            #6
            could you please first change your include script path
            from this:
            Code:
            include("/home/4/4/a/2769/2769/public_html/file2.php");
            to this:
            Code:
            include("file2.php");
            As I can see, you are using a shared hosting server right? (may not be too)
            anyway no need to setup your path like /home/.... just give the relative path as i suggested.

            let me have a closer look to your problem, as I also not sure about your question.

            Comment

            Working...