469,297 Members | 2,144 Online
Bytes | Developer Community
New Post

Home Posts Topics Members FAQ

Post your question to a community of 469,297 developers. It's quick & easy.

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["directorylist"]; // (Which I split to get the correct path to the image)
[/PHP]
Nov 3 '08 #1
5 9358
Markus
6,050 Expert 4TB
If you're including a file, that file inherits the variables of it's parent. Consider this:

file1.php
Expand|Select|Wrap|Line Numbers
  1. <?php
  2.  
  3. define("HELLO", "Hello from file1");
  4.  
  5. include("file2.php");
  6.  
  7. ?>
  8.  
and in file2.php
Expand|Select|Wrap|Line Numbers
  1. <?php
  2.  
  3. echo HELLO;
  4. // would print: Hello from file1
  5. ?>
  6.  
Nov 3 '08 #2
file1.php
[PHP]
define("IMAGENUMBERCONST",$_GET["imagenumber"]);[/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("session.cookie_domain",substr($_SERVER[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 IMAGENUMBERCONST;
echo'">';
?><html>
</table>
[/PHP]
This gives me the incorrect path to the image:
http://www.website.com///tn_IMAGENUMBERCONST
As you can see the directories aren't present and IMAGENUMBERCONST is a literal.
Nov 3 '08 #3
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!
Nov 3 '08 #4
Markus
6,050 Expert 4TB
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..
Nov 3 '08 #5
ak1dnar
1,584 Expert 1GB
could you please first change your include script path
from this:
Expand|Select|Wrap|Line Numbers
  1. include("/home/4/4/a/2769/2769/public_html/file2.php");
to this:
Expand|Select|Wrap|Line Numbers
  1. 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.
Nov 3 '08 #6

Post your reply

Sign in to post your reply or Sign up for a free account.

Similar topics

3 posts views Thread by domeceo | last post: by
9 posts views Thread by Daniel Moree | last post: by
1 post views Thread by VB | last post: by
5 posts views Thread by Sona | last post: by
1 post views Thread by Infiliset | last post: by
3 posts views Thread by Dave Kelly | last post: by
2 posts views Thread by Mike | last post: by
1 post views Thread by CARIGAR | last post: by
reply views Thread by zhoujie | last post: by
reply views Thread by suresh191 | last post: by
reply views Thread by harlem98 | last post: by
By using this site, you agree to our Privacy Policy and Terms of Use.