Autor Zpráva
frauen
Profil *
Zdravím, narazil jsem na problém s require souboru. Používám localhost (WampServer) v základním nastavení.

Mám složku s webem na adrese http://127.0.0.1/web/, kde v indexu mám následující kód:
<?php
// Core
require('core/core.php');
?>

V souboru na adrese: http://127.0.0.1/web/core/core.php mám pak:
<?php
// Configuration file
if(file_exists('../config/config.php')) {
require('../config/config.php');
} else {
exit('404: Configuration file not found.');
}
?>

V souboru na adrese: http://127.0.0.1/web/config/config.php existuje.

Bohužel mi stále vypisuje '404: Configuration file not found.'.

Když jsem po té ve složce pro administraci - http://127.0.0.1/web/admin/ tak v indexu mám:
<?php
// Core
require('../core/core.php');
?>

Ve složce pro administraci však vše funguje.

V čem dělám chybu? Díky.
nightfish
Profil
frauen:
if(file_exists('../config/config.php')) {
if (file_exists(dirname(__FILE__).'/../config/config.php')) ...
AM_
Profil
frauen:
Mám složku s webem na adrese http://127.0.0.1/web/
při použití require s relativní cestou se hledá lokálně v souborovém systému, nikoli přes http! takže vůbec není důležité, jak zvenku vypadá adresářová struktura, důležité je, kde jsou soubory uloženy na serveru, ale to zde problém nebude.

Jak píše nightfish, pokud adresuješ relativně od aktuálního souboru, prefixuj dirname(__FILE__). Když totiž z rootu (/) vložíš soubor z podadresáře (/core), pracovní adresář je stále root (/), takže ../config jde ještě výš, což je špatně.
Majkl578
Profil
V PHP 5.3+ používej __DIR__ místo dirname(__FILE__).

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: