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?
 

the_indios

Nuovo Utente
29 Gen 2020
13
0
1
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
 

macus_adi

Utente Attivo
5 Dic 2017
1.294
85
48
IT/SW
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?
 

the_indios

Nuovo Utente
29 Gen 2020
13
0
1
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.