|
Posted by Jerry Stuckle on 10/27/07 21:58
leonardodiserpierodavinci@gmail.com wrote:
> Hi. Sorry for what is perhaps a neophyte question: is it possible to
> pass a variable to a PHP script from inside another PHP piece of code?
>
> For instance, the file test.php (which of course resides on a
> webserver that supports PHP) is as such:
>
> [some HTML code...]
> <?php
> echo("<i>the variable abc contains " . $_GET['abc'] . "</i>");
> ?>
> [some more HTML code...]
>
> and if I open this file directly i.e. by typing test.php?abc=888 in
> the URL line of a web browser, I correctly get the message "the
> variable abc contains 888" in italic, surrounded by the HTML content.
>
> Now, let's say that I want to include all this content in another
> file, index.php.
> I tried to call it as such in index.php
>
> [other HTML...]
> <?php
> include "test.php?abc=888";
> ?>
> [yet other HTML...]
>
> which is not the correct way as it gives the following error:
>
> Warning: main(l/test.php?abc=888) [function.main]: failed to open
> stream: No such file or directory in /home/www/index.php on line 52
> Warning: main() [function.include]: Failed opening 'l/test.php?
> abc=888' for inclusion (include_path='.:/usr/share/php:/usr/share/
> pear') in /home/www/index.php on line 52
>
> How should I call the file?
> Thanks in advance for any hint!
>
>
The include statement goes directly to the file system and loads the
file, just like if you copied and pasted it in an editor.
When you load it from your browser, you are loading it through the web
server, which parses out the values and places the "abc=888" in the
$_GET superglobal.
So the file name is not "test.php?abc=888" (could you open it this way
in your text editor?).
So two things. First of all, include the file by the name - absolute
path is best, i.e.
include($_SERVER['DOCUMENT_ROOT'] . '/test.php');
($_SERVER['DOCUMENT_ROOT'] is a predefined variable which points to the
root directory of your website.)
This effectively adds the file to your current one, very similar to a
copy/paste operation.
So, for the second part, any variables defined before you include the
file (and are not within function scope) will be available to the
included file.
So if you were to say
$abc=888;
before your include, in the included file $abc will contain 888.
--
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
jstucklex@attglobal.net
==================
Navigation:
[Reply to this message]
|