Dubbio su costante ROOT, che rappresenti la base directory del sito

the_indios

Nuovo Utente
29 Gen 2020
13
0
1
se definisco una variabile ROOT che mi rappresenti la root del sito, mi conviene definire i percorsi come:

ROOT . "/.../..."

oppure

ROOT. ".../..."

?


In teoria, per mantenere uniforme la sintassi con
require_once $_SERVER['DOCUMENT_ROOT']."/sitename";

dovrei impostare la ROOT come una cartella senza "/" finale



però se poi la ROOT deve essere la directory di apache (uno usa i virtual server) e non vuole cambiare il codice, dovrebbe essere ROOT = "/"


in modo da fare redirect (ROOT)

e non redirect (ROOT."/")


Insomma, la ROOT può essere una stringa vuota?
 
Non ci siamo intesi, io parlavo di come scrivere i percorsi all'interno del sito, non come andare a definire la ROOT.


PHP:
define('ROOT',__DIR__);

Perché?

La costante __DIR__ non si riferisce al path del filesystem? Cosa centra con gli URL? Se facessi redirect(ROOT) avendola definita in quel modo, non risolverei.


Poi, se definissi la ROOT con __DIR__ dovrei inserire quel file della definizione nella root del sito (dove si trova la index), così:
PHP:
require_once ($_SERVER['DOCUMENT_ROOT'])."/config.php"

ma nel caso in cui ho definito un virtualhost, quella non funzionerebbe più, infatti non mi mostrerebbe i css (vedendo il sorgente sarebbe /Application/XAMPP/xamppfiles/htdocs/nomesito/public/css/...

invece di /nomesito/public/css


Voglio poter scrivere un codice che mi vada bene sia per l'uso con virtualhost che senza
 
se definisco una variabile ROOT che mi rappresenti la root del sito
Partendo dal fatto che hai chiesto questo.... Quindi la root del sito è: /var/www/percorso_completo....

Comunque in linea di massima per fare questo:

ma nel caso in cui ho definito un virtualhost, quella non funzionerebbe più, infatti non mi mostrerebbe i css (vedendo il sorgente sarebbe /Application/XAMPP/xamppfiles/htdocs/nomesito/public/css/...

nel file index.php si definisce solitamente
DIRECTORY_SEPARATOR: '/'
ROOT: percorso fisico del file (è uno standard, le costanti non si mettono a cavolo)
APP_ROOT: quello che chiedi tu ossia ('/');
APPPATH: il path di riferimento per il pattern M|noView|C ossia: ROOT.DIRECTORY_SEPARATOR.'app'
APPVIEWS: il path delle view.

per completare l'esempio riporto l'include di LARAVEL.
PHP:
$app = require_once __DIR__.'/../bootstrap/app.php';
Come vedi si include dalla posizione fisica del file!
-------

require_once ($_SERVER['DOCUMENT_ROOT'])."/config.php"
Ti prego, dimmi che non va in produzione con una cosa come questa...

La sicurezza all'ultimo posto?
 
Infatti uso il webserver solo per siti privati, in localhost.

Avevo letto molto tempo fa qualcosa a riguardo della sicurezza, se ti va puoi spiegarmi meglio.

Se ti va... avrei dovuto saperlo, avrei, ma non lo so. E pazienza.
 

Discussioni simili

M
Risposte
6
Visite
3K
HTML e CSS
Membro cancellato 26246
M