[PHP] Percorso dei file

MarcoGrazia

Utente Attivo
15 Dic 2009
852
20
28
63
Udine
www.stilisticamente.com
Ciao, discorso antico e un po' da neofita, ma davvero ho questo problema per un sito che sto rinovando.
Ora lo scheletro del sito è realizzato in questo modo:
root
|
+--- bin
|
+--- admin
|
+--- css
|
+--- js
|
+--- img
Ora partendo da root non è un problema, ma quando vado in admin, per non ripetere ( ovviamente l'intero albero del sito ) ogni riferimento ai file che si trovano nelle directory precedenti inserisco davanti al percorso del file ../ così da evitare doppioni.
Es.:
<link type="stylesheet" href="../css/webpage.css">
Il problema resta il menù che si trova in bin.
Il menù è dinamico, ovvero cambia in funzione di: se sono un utente, se sono iscritto, se sono un moderatore e se sono l'amministratore, mostrando o meno alcuni link o altri.
Questo ha creato un file in PHP abbastanza compresso, ma alla fine nulla di difficile.
Il problema però nasce dal momento in cui entro in admin, per non ripetere il file menu.php con tutti i problemi derivanti dall'avere un doppione, e dover magari apportare modifiche non ad uno, ma a ben due file, ho evitata questa strada; ora però mi si pone il problema del link di rimando a root.
In pratica il menù deve sapere quando si trova nella directory admin in modo da inserire davanti ai file in root il riferimento ../ e questo mi sta diventando un problema grosso.
E non so come risoverlo in modo automatico e semplice.
 
Ciao, non so se ho compreso bene il tuo problema,
Ma per evitare il ../ e verificare se serve o meno potresti utilizzare $_SERVER
 
No perché $_SERVER mi da sì la root del sito, solo che non la posso usare in quanto la vera root è un'altra.
In pratica, il sito si trova in una sottocartella della vera root, insieme ad altri siti.
Perfetto posso aggiungere a $_SERVER['document_root'] . /sito/ ma poi?
 
Salve, potresti utilizzare un file di configurazione inserito nella root dell'applicazione, tipo :
PHP:
//file config.php
if(!defined('MY_ROOT')){
define('MY_ROOT',__DIR__);
}

in alternativa
if(!defined('MY_ROOT')){
define('MY_ROOT','https://url_sito.it');
}


----------------------------
 file inde.php
//include il file di configurazione
include_once('my_config_file.php');

"<?php echo MY_ROOT;?>/path/risorsa/file.ext"

0
<?php

echo MY_ROOT.'/path/risorsa/file.ext';

dimenticavo... __DIR__ ottiene il percorso assoluto del file, magari facendo un replace....! ma...
 
Ultima modifica:

Discussioni simili