Domanda

hai. Ho il sito che è davvero strano, e ora mi sta facendo dei problemi. Questa è una struttura semplificata

public_html
- adm
--- raport
------ raportpdf.php
--- class
------ Bonus
--------- Bonus_DAO.class.php 
------ config.php
--- raport.php
- index.php
.

così.Index.php è un caricatore gigante.Ha linee: (ma non penso che stiano facendo diffrence)

set_include_path('lib/DB' . PATH_SEPARATOR . get_include_path());
set_include_path('lib/PHPLOT' . PATH_SEPARATOR . get_include_path());
set_include_path('config' . PATH_SEPARATOR . get_include_path());
set_include_path('view' . PATH_SEPARATOR . get_include_path());
set_include_path('controller' . PATH_SEPARATOR . get_include_path());
set_include_path('model' . PATH_SEPARATOR . get_include_path());
.

all'interno bonus_dao.class.php è qualcosa come

require_once('./adm/class/config.php');
.

ratorpdf.php è chiamato tramite index.php - invia il suo contenuto senza alcun errore a posta. Ma quando voglio accedere a ratort.php, ho un errore come:

Warning: require_once(./adm/class/config.php) [function.require-once]: failed to open stream: No such file or directory in /home/panele/domains/blahblah/public_html/adm/class/Bonus/Bonus_DAO.class.php  on line 2

Fatal error: require_once() [function.require]: Failed opening required './adm/class/config.php' (include_path='.:/usr/local/lib/php') in /home/panele/domains/blahblah/public_html/adm/class/Bonus/Bonus_DAO.class.php on line 2
.

Come posso risolverlo?

È stato utile?

Soluzione

Inserire una linea come la seguente in un file incluso in questa struttura del tuo (questo file incluso deve si trova nella directory principale, qualcosa come un config.php o di solito uso init.php).

define("ROOT_DIR",dirname(__FILE__));
.

Quindi, dove si ricevono gli errori (o per la sinesinymy all'interno del tuo codice - ovunque hai bisogno () / includere ()), aggiungere root_dir. "/ percorso / a / file" prima di esso. Ciò che sta facendo è dare il percorso assoluto alla directory principale e quindi specificare semplicemente la directory all'interno della radice che stai cercando. Per motivi di esempio, la mia directory principale è "/ home2 / esempio". Ora, inserisco questa riga in un file che ho incluso, ecc. E modificare la riga di richiesta a questo:

require_once(ROOT_DIR."/adm/class/config.php");
.

La riga sopra si traduce in pratica (supponendo che abbia usato il define (); dichiarazione all'interno di un file situato in / home2 / esempio)

require_once("/home2/example/adm/class/config.php");
.

Così fondamentalmente, questo è un modo semplice per dare percorsi statici un elemento dinamico in modo da non arrivare a questo problema!

Buona fortuna!
Dennis m.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top