|
Posted by shimmyshack on 05/12/07 15:48
On May 11, 11:40 pm, Alan Jones <a...@jalanjones.com> wrote:
> Hello everyone, any help would be greatly appreciated. :)
>
> What I'm trying to do may not be advisable, but here goes...
>
> I want a page named signature.php to appear conditionally as
> an include within another include so that it will, for example,
> appear in index.php but not in other result pages that use the
> same top level include.
>
> The method would need to determine what page it is inside of
> during each given instance. I guess something like...
>
> if page is index.php then include file else do nothing
>
> A 'nested conditional' seems obvious but I don't know how to
> create an argument that checks the result page file name or
> otherwise id's that parent page.
>
> Obviously, I'm new to PHP and my understanding of basic
> programming is very limited. I'm also new to the group. I hope
> to learn quickly, and I look forward to helping others in the
> future.
make three php pages,
each containing the following
apart from the last line
<?php
echo '<pre>';
echo "me: " . __FILE__;
echo $_SERVER["REQUEST_URI"] . "\n";
echo $_SERVER["SCRIPT_NAME"] . "\n";
echo $_SERVER["PHP_SELF"] . "\n";
echo $_SERVER["SCRIPT_FILENAME"] . "\n";
echo "\n\n";
include ( '2.php' );
?>
inside 2.php the last line should be 3.php
and inside 3.php theres no include
you will see that __FILE__ always contains the name of the script it
is in, whether than is included in something else or not.
whereas $_SERVER['SCRIPT_FILENAME'] doesnt change, it returns 1.php
because that is the script your are executing, so you can use it to
find the name of the file that includes the others.
your basic script would be
if( basename($_SERVER['SCRIPT_FILENAME'])=='index.php' )
{
include( 'signature.php' );
}
however if you change your server setup this might not always work, as
you said before hard coding things like this is generally not a good
idea. Instead look at the architecture you are building and see if you
cant handle the whole thing in one function somewhere centrally
located say in /private/appname/functions
this way your life is easier later on.
hope that helps.
[Back to original message]
|