Search code examples
phprequire-once

Error including files in php using require_once


This is my app. root:

htdocs

    core/

        init.php

    classes/

        DB.php
        POST.php

    ajax/

        post_feeds.php

This is my post_feeds.php;

require_once '../core/init.php';

The file init.php is there but I don't understand why I am getting this error.

Warning: require_once(classes/DB.php): failed to open stream: No such file or directory in C:\Apache24\htdocs\core\init.php on line 9

Fatal error: require_once(): Failed opening required 'classes/DB.php' (include_path='.;C:\php\pear') in C:\Apache24\htdocs\core\init.php on line 9

It gives me no error in my init.php file when I require_once 'classes/DB.php';

This is init.php

session_start();

date_default_timezone_set('Etc/GMT+2');
//date_default_timezone_set('Europe/Tirane');

//autoload for classes.
require_once 'classes/DB.php';
require_once 'classes/USER.php';
require_once 'classes/NOTIFICATION.php';

if (isset($_COOKIE["user_id"])) {
    $_SESSION['user_id'] = $_COOKIE['user_id'];
}

Solution

  • Try to use an absolute path for including files:

    $root = realpath($_SERVER["DOCUMENT_ROOT"]);
    require_once("{$root}/core/init.php");
    

    Or with dirname:

    require_once(dirname(__FILE__) .'/../core/init.php');