Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    Percorsi assoluti (del server)

    Ciao ragazzuoli,

    mi son letto un po' di pillole riguardanti i percorsi del server ma non mi hanno chiarito alcune cose.

    Fin'ora ho sempre avuto tutti i siti che facevo hostati presso un mantainer la cui variabile _SERVER['DOCUMENT_ROOT'] restituiva "/".

    Per me era oro nel senso che se dovevo chiamare un file dall'html che stava sulla root da una sottocartella lo chiamavo a questo modo:

    [img]/immagine.jpg[/img]

    o se dovevo linkare a una pagina che stava sulla root scrivevo:

    Home

    e se dovevo aprire un file che stava sulla root con fopen o controllare una dir con is_dir sempre (da una sottocartella) lo aprivo così:

    fopen("/file.txt", "w");

    Ora invece mi trovo a dover pubblicare un sito su di un hosting che restituisce come $_SERVER['DOCUMENT_ROOT']:

    "www/nomesito/www".

    Ora la situazione è che se devo chiamare la solita immagine posso ancora usare /immagine.jpg o per un link va ancora benissimo /index.php per risalire alla root...

    se invece devo aprire un file o controllare l'esistenza di una directory non posso usare /fileinhome.txt per risalire alla home.

    Ho pseudo risolto usando:

    fopen($_SERVER['DOCUMENT_ROOT']."/fileinhome.txt", "w")

    ma mi domando:

    Devo davvero distinguere fra files che occorrono al browser (immagini nell'html, links a pagine etc.) e files che occorrono al webserver?

    Per comandi come fopen o is_dir o file_exists devo davvero dare il path assoluto del server?

    Inoltre anche al contrario c'è un problema nel senso che se uso il percorso costruito con $_SERVER['DOCUMENT_ROOT'] dentro a un link ad una pagina o per richiamare un immagine il link mi diventa:

    http://www.nomesito.com/www/nomesito/www/pagina.html e non trova una mazza...

    Io mi ero abituato a creare una variabile $file e usarla sia per i link che per le operazioni sui file, ma ora se non metto il $_SERVER['DOCUMENT_ROOT'] non vanno le operazioni sui files e se lo metto non vanno i link a tali files. Devo proprio averne due distinte o c'è qualcosa che non va con questo mantainer?

    Ringrazio particolarmente chi mi vorrà aiutare perchè manco a dirlo ho la massima urgenza.

    Ciao

  2. #2

  3. #3
    Utente di HTML.it L'avatar di Razorblade
    Registrato dal
    Feb 2002
    Messaggi
    1,308
    Ciao,
    _SERVER['DOCUMENT_ROOT'] è una variabile che devi usare con attenzione in quanto non è disponibile su tutti i server. Come lascia presumere il nome della chiave, questa variabile dovrebbe restituire il percorso fisico completo della tua applicazione web/sito internet.

    Quando devi visualizzare delle immagini o devi richiamare delle pagine però non devi usare questa variabile in quanto non sarebbe corretto.

    "www/nomesito/www" è il percorso fisico del tuo sito, puoi utilizzarlo per includere dei files, come ad esempio delle classi o files di configurazione per esempio.
    Ciao

  4. #4
    ok per il DOCUMENT_ROOT inteso come variabile e grazie del consiglio, ma lasciamo un attimo stare le variabili o le costanti... ipotizziamo di usare solo stringhe scritte a mano...

    ==================

    per aprire un file sulla root (da una sottocartella) "posso" o "devo" usare il percorso fisico del server?

    fopen("www/nomesito/www/nomefile.txt")

    o mi basta usare il nome del file con una slash all'inizio?

    fopen("/nomefile.txt");

    ==================

    se invece voglio solo linkare tale file da un html (da una sottocartella) "posso o "devo" linkarlo col solo nome del file (sempre con la slash all'inizio)

    Scarica il file txt

    o posso anche dargli il percorso fisico del server:

    Scarica il file txt

    Grazie mille.

  5. #5

  6. #6
    Utente di HTML.it L'avatar di Razorblade
    Registrato dal
    Feb 2002
    Messaggi
    1,308
    Ciao,
    per aprire un file sulla root come nel tuo esempio vanno bene entrambe i metodi, il secondo metodo solo se lo script si trova nella stessa directory in cui è presente il file da aprire ( in questo caso la root directory ).


    Per quanto riguarda la seconda situazione, il primo esempio che fai è corretto, sempre considerando che lo script si trovi nella stessa directory del file che si vuole linkare.

    Il secondo esempio non va bene, non puoi usare un path fisico per un link, utilizza invece il nome del dominio con http ad esempio http://www.miosito.it/nomefile.txt

  7. #7
    grazie sei stato molto gentile.

    Quindi sempre percorso fisico (relativo o assoluto) per manipolare i files e url per i link (relativo o assoluto).

    Tnx

  8. #8
    p.s.: tornando alla questione del DOCUMENT_ROOT ho letto la documentazione sul sito di php.net e conferma che ci sono problemi IIS ma come soluzione nei commenti ho trovato solo il suggerimento di usare un filtro ISAPI (o qualcosa del genere).

    Qualcuno ha una soluzione lato codice invece per scrivere codice + portabile?
    grazie

  9. #9
    Utente di HTML.it L'avatar di Razorblade
    Registrato dal
    Feb 2002
    Messaggi
    1,308
    Io mi sono aggiustato creando nei miei progetti una costante che funge da document root, che equivarrà a _SERVER['DOCUMENT_ROOT'] se disponibile, altrimenti me la scrivo a mano.
    Ciao

  10. #10
    Razorblade santo subito!



    grazie ancora ciao

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.