On Thu, 5 Dec 2002, Gundamn wrote:
> I have a hosted account. As such, I am unable to use the default location
> for files when used with the include command. So could somebody tell me how
> I can either make it go to a different directory, or to link to something
> (and how to add the variable as the filename)?
>
> Thank you in advance.
My usual approach is to have an includes/ directory, at the same level
as the htdocs/ directory, and thus outside the webspace. In this
includes/ directory I put an include.php file which includes any other
files needed with include_once, like so:
<?
include_once INC_DIR . '/config.php';
include_once INC_DIR . '/functions.php';
?>
In htdocs/ I put another include.php, which basically says:
<?
define ('INC_DIR', '../includes');
include INC_DIR . '/include.php';
?>
In any subdirectories of htdocs/ I put a similar file, except one level
deeper it'd be:
<?
define ('INC_DIR', '../../includes');
include INC_DIR . '/include.php';
?>
For each subdir level, add a ../ to the define.
On a hosted account, you may instead have to put your includes/
directory elsewhere. In this case, the include.php in htdocs/ would
just be
<?
define ('INC_DIR', '/path/to/includes');
include INC_DIR . '/include.php';
?>
and the sub-directory scripts just
<?
include '../include.php';
?>
Either way, the goal though is to have an include.php file in each
directory of your webspace that references a single include.php file
with relative (../) paths. Coupled with keeping your includes outside
the webroot, this can make include files a lot less troublesome.
A bit of overhead, true, but it keeps my configs, db passwords, and
library code entirely out of the webspace. I've used it successfully in
a large site (150 user-accessible scripts, 25 library scripts, totalling
about 1M of php)
One big warning about include files... PHP's include functions work
counter-intuitively in that all relative paths are relative to the
script that caught the user's request. Thus if you have a bunch of
scripts in a lib/ directory, they can't include each other without
taking into account the path from the calling script... Thus why I try
to define INC_DIR as early as possible if it's relative.
Hope this helps...
--
Morgan Hughes
C programmer and highly caffeinated mammal.
[EMAIL PROTECTED]
ICQ: 79293356
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php