3

i need to require_once this files main.class.php and functions.php and config.php to admin/test.php. how to php find require real path?!

NOTE: main.class.php in class folder , functions.php in includes folder and config.php in root directory and test.php in admin folder.

File Directory:

root
    /admin/
        ->test.php 
    /class/
        ->main.class.php
    /includes/
        ->functions.php
    /templates
    config.php
    phpinfo.php
B.B King
  • 111
  • 2
  • 3
  • 7

3 Answers3

5

I would add your root folder to the include path and work from there.

From admin/test.php

set_include_path(implode(PATH_SEPARATOR, array(
    realpath(__DIR__ . '/..'),
    get_include_path()
)));

require_once 'class/main.class.php';
require_once 'includes/functions.php';
require_once 'config.php';

Update

If I'm following your question correctly, assuming you wanted to define this in the config.php file, you would do something like this

config.php

set_include_path(implode(PATH_SEPARATOR, array(
    __DIR__,
    get_include_path()
)));

require_once 'class/main.class.php';
require_once 'includes/functions.php';

admin/test.php

require_once __DIR__ . '/../config.php';
Phil
  • 157,677
  • 23
  • 242
  • 245
  • this useful and pretty answer. can/how to put your method in 'define' and put in config file then in myfiles? – B.B King Apr 01 '13 at 22:10
3

Here is a solution not depending on the $_SERVER variable:

require_once(__DIR__.'/../class/main.class.php');
require_once(__DIR__.'/../includes/functions.php');
require_once(__DIR__.'/../config.php');
simon.denel
  • 780
  • 6
  • 23
  • 3
    FYI, the `__DIR__` magic constant has been around since 5.3.0. `__DIR__ === dirname(__FILE__)` – Phil Apr 01 '13 at 22:15
0

From admin/test.php you would require like this:

require_once("../class/main.class.php");
require_once("../includes/functions.php");
require_once("../config.php");
zipser
  • 250
  • 1
  • 8
  • Not at all and do not see it as an attack. I just did not understand what you meant. Relax : ) – zipser Apr 01 '13 at 22:04