Wątek przeniesiony 2016-09-04 17:07 z PHP przez dzek69.

Dodawanie zawartości innego pliku poprzez include

0

W katalogu strony znajduje się plik index.php oraz katalog app.
W katalogu app są dwa foldery config (w nim plik config.php) oraz controller (w nim plik Database.php).
Plik config.php wygląda następująco:

define("DB_HOST", "localhost");
define("DB_NAME", "admin_termometr");
define("DB_USER", "root");
define("DB_PASS", "");

W pliku Database.php dołączam plik config.php

include('../config/db.php');
class Database
{
    private $host   = DB_HOST;
    private $user   = DB_USER;
    private $pass   = DB_PASS;
    private $dbname = DB_NAME;

Wywołanie bezpośrednio app/controller/Database.php nie zwraca błędów.
Jednak gdy chcę zrobić już to w index.php w folderze projektu pojawiają się błędy:

Warning: include(../config/db.php): failed to open stream: No such file or directory in D:\workspace\pdo_fluent\app\controller\Database.php on line 3

Warning: include(): Failed opening '../config/db.php' for inclusion (include_path='.;C:\xampp\php\PEAR') in D:\workspace\pdo_fluent\app\controller\Database.php on line 3

Wywołanie w index.php

<?php
include "app/controller/Database.php";
?>

Nie wiem co robię nie tak.

1

Wywołania include są relatywne do pliku, który wywołujesz jako pierwszy. Zmień więcj include('../config/db.php') na include('app/config/db.php') albo jeżeli chcesz relatywnie dołączać pliki to używaj include(__DIR__."/../config/db.php")

0

Dziękuję.
Rozumiem pierwszą część zmiana na: include('app/config/db.php')

Nie działa mi niestety include(__DIR__."/../config/db.php")

1

zrób var_dump(__DIR__."/../config/db.php") i zobacz czy ścieżka się zgadza, bo mogłem coś pomieszać (pisane z palca).
Samo __DIR__ nie wiem od kiedy jest wprowadzone, więc może używasz jakiejś archaicznej wersji PHP?

0

Już działa include(__DIR__.'/../config/db.php');
Miałem błąd.
Dziękuję za pomoc.

1 użytkowników online, w tym zalogowanych: 0, gości: 1