PHP richiede in diverse cartelle

Va bene così sul mio sito ho una cartella scripts che include un file php che si connette al server mysql quindi se sposto un database allora lo cambierà su tutti i file che si connettono al database.

Ho anche un'altra cartella chiamata templates. In quella cartella c'è una cima per l'intestazione e il piè di pagina. Nel model di intestazione ho scritto:

require("../scripts/connect.php"); 

E ho un'altra cartella chiamata, categoria. E quella cartella include l'intestazione e l'intestazione include connect. Ma poi visualizza ed errore che non ci sono tali file.

Per favore aiuto. Grazie

Una buona pratica è includere una configuration principale in tutti i file php in esecuzione, solitamente chiamati config.php 🙂

in questo file di configuration crea una costante chiamata SITE_ROOT o qualcosa di simile che punta alla cartella esatta come questa define("SITE_ROOT", "/var/www/mysite");

Quindi su qualsiasi inclusione, include_once, require, require_once lo si usa così:

 require(SITE_ROOT."/scripts/connect.php"); 

Questo dovrebbe risolvere qualsiasi dramma relativo

Non dovresti utilizzare routes relativi con l'inclusione / richiesta, ma utilizzare una costante che definisce il ROOT_PATH del tuo sito web.

Esempio: in tutti i file che richiedono la chiamata include:

 define(ROOT_PATH, '../'); include ROOT_PATH . '/scripts/connect.php'; 

E in /scripts/connect.php (e tutti gli altri file che saranno inclusi da qualche parte), tutti gli include dovrebbero usare ROOT_PATH (senza definirlo).