Salve vo' al dunque,
se io sono in un file ad esempio: /qui/quo/qua/paperino.php
e devo includere una risorsa in / che simbolo devo usare?
esempio se io faccio include("../risorsa.boh"); include (se esiste) una risorsa in /qui/quo/risorsa.boh. Quindi per caricare qualcosa in / devo fare una cosa assai brutta es:
include("../../risorsa.boh");
Il che così sembra facile ma per una sotto cartella di n-simo livello (rispetto alla mia posizione di m-simo livello) il numero de '../' è m-n quindi se m>>n ci vogliono tre giornate di ../ solo per digitare un url...
Baci
Ah ecco, "/membri/nomeutente/percorso/file.php"
è proprio quello che tentavo di fare oggi ma utilizzavo invano la struttura di cartelle virtuali come appare nell'url web, che infatti non funge e dunque ero costretto a url relativi (../../cartellainclude/file.php mentre avrei preferito /cartellainclude/file.php)
Giustamente lato server tocca usare il path fisico, poco noto oserei dire, a meno che non lo si scopra nella descrizione di un errore php (l'hai dedotto dagli errori o è spiegato da qualche parte?).
Grazie gve!!
Avvertimento: richiedere in privato questioni tecniche produrrà inevitabilmente una supercazzola prematurata come risposta. (5 served)
Io lo ho dedotto dal phpinfo() , voce SCRIPT_FILENAME, ma esiste anche una variabile dell'array syuperglobale $_SERVER (non ricrodo il nome, guarda il manuale del php) che si può usare per risalire a tale informazione.
Comunque la cosa era già saltata fuori anche in qualche altra discussione del forum ;)
Non ci siamo capiti... Non parlo del url di Altervista (e so benissimo che c'è la funzione cerca da circa due anni...)
Io parlo di livelli...
Se mi trovo in un livello più alto (definialmolo così crescente per numero di sottocartelle) come faccio ad accedere ad un file di un livello inferiore?
Se sono in /qui/quo/qua/pagina.php e gli do
include("/qui/risorsa.boh"); lui mi prova a includere un file in:
/qui/quo/qua/qui/risorsa.boh invece di scendere di livello... ecco perchè speravo ci fosse un carattere o una stringa che facesse ripartire dalla radice per la ricerca della risorsa da includere...
Capito? (non mi so spiegare...)
La '/' iniziale serve proprio a indicare che si riparte dalla radice; quello che dici tu dovrebbe succedere se fai include('qui/risorsa.php');include('/qui/risorsa.php') non dovrebbe funzionarti in quanto ti cerca nella root generale di AV e non nella tua; se invece specifichi include('/membri/tuonick/qui/risorsa.php') ti trova la risorsa che corrisponde all'url www.tuonick.altervista.org/qui/risorsa.php ; spero di esser stato chiaro.
Altrimenti non riesco proprio a capire cosa vuoi fare ...
include("/pigi2/programmi/variabili.php"); e io sono in una pagina con questo url /pigi2/programmi/modulo_news/admin/index.php
l'errore che mi dà è
Warning: Failed opening '/pigi2/programmi/variabili.php' for inclusion (include_path='.;C:\Programmi\EasyPHP\php\pear\') in c:\programmi\easyphp\www\pigi2\programmi\modulo_ne ws\admin\index.php on line 39
se io adesso infilassi per prova le sottocartelle e il file in /pigi2/programmi/modulo_news/admin/pigi2/programmi/variabili.php
non mi dà più l'errore perchè lo trova... Sto impazzendo..
Aspetta! Credo di aver capito dall'errore che hai postato!
Tu il sito lo stai provando in locale sotto Windows, giusto? Beh, il problema è da quel che vedo che dovresti editare il file php.ini che si trova nella cartella di Windows con notepad e cercare la striga include_path , modificando il percorso con quello dove si trova la radice del tuo sito.
I suggerimenti che ti ho dato funzionano su AV (ricorda di far precedere '/membri/tuonick' al resto del percorso però); il fatto è che l'effettiva root usata da include dipende dalle impostazioni del server, esattamente dall'inlude_path specificato nel file php.ini .