• User Newbie

    Include e percorso file

    buongiorno Forum
    neofita di PHP prima di scrivere ho guardato un po' di vecchi post ma non vengo a capo del problema.

    sto trasformando il mio sito usando php e usando include per inserire i menu sulle varie pagine e mi trovo con un paio di problemi

    uno
    ho creato il menu - l'ho messo in cartella apposita chiamata "inclusi"
    il menu in questione viene incluso in pagine nella cartella "corsi" sotto la quale c'è una cartella "ecdl"
    dalle pagine della cartella corsi funziona tutto bene
    da quelle della sottocartella "ecdl" non funziona perchè anzichè cercare
    nomesito/corsi/nomepagina
    cerca
    nomesito/corsi/corsi/nomepagina

    due
    ho creato una testata formata da un'immagine (cartella "immagini") e una scritta regolata da una variabile
    ed una "sottotestata"!! con della grafica e il link Home (che porta alla pagina index nella dir principale)
    anche qui dalle pagine in ../corsi funziona tutto
    da quelle in ecdl si vede la testata con le variabili ma non l'immagine e il link home vuole portartmi in ..corsi/index.html

    ho provato ad usare
    include($_SERVER['DOCUMENT_ROOT'].'/inclusi/testata.html')
    ma così: in explorer non si vede più ne la testa ne la barra con il link home
    in Firefox si vede la fascia con il colore di fondo corretto della testata e di nuovo nè immagine nè scritta ne barra con link!!!:o

    QUINDI?!
    ccheffaccio???!!!!!!
    grazie in anticipo
    Nadia


  • Bannato User Attivo

    è un problema di percorso

    include($_SERVER['DOCUMENT_ROOT'].'/inclusi/testata.html')

    qui se sei in cartella è normale che ti generi una cosa del genere

    nomesito/corsi/corsi/nomepagina

    questa $_SERVER['DOCUMENT_ROOT'] potrebbe stampare questo percorso
    nomesito.it/cartella_1/
    mentre te avresti bisogno stampasse
    nomecartella.it/inclusi

    ti suggerisco di usare questo ../ per tornare indietro e poi il nome cartella dove vuoi entrare tipo: ../inclusi/file da includere


  • User Newbie

    grazie tifo-milan,
    il problema però è che sono entrata qui e leggendo ho provato ad usare
    include($_SERVER['DOCUMENT_ROOT'].'/inclusi/testata.html')
    perchè con ../ non stava funzionando bene!

    ../ funziona per i primi due livelli del sito ovvero se includo il file in pagine della cartella principale "nomesito" o della sottocartella "nomesito/corsi"

    mentre non funziona se lavoro con i file della sottocartella
    "nomesito/corsi/ecdl"

    quindi la pagina
    //nomesito/corsi/corsi_milano.php
    se chiamata dal menu di pagine in
    //nomesito/corsi/ecdl/ecdl.php
    non si apre perchè viene cercata come
    //nomesito/corsi/corsi/corsi_informatica_milano.php

    allo stesso modo da ecdl.php l'index che è nella cartlla principale viene cercato come
    //nomesito/corsi/index.html
    !!!!!

    accade anche che nelle pagine della cartella corsi l'include è scritto:
    <?php include("../inclusi/corsi_menusx.html"); ?>

    mentre in quelle della cartella corsi/ecdl mi appare scritto
    <?php include("../../inclusi/corsi_menusx.html"); ?>
    il doppi ../../ se l'è messo dreamweaver da solo!

    però se scrivo
    <?php include("../inclusi/corsi_menusx.html"); ?>
    nelle pagine ecdl ...non include più nulla!

    :gtsad: bloccatissima !!!


  • Bannato User Attivo

    mentre non funziona se lavoro con i file della sottocartella
    "nomesito/corsi/ecdl"
    questo ../ serve per scendere...se sei sopra di due cartelle lo metterai due volte e cioè ../../

    se proprio non riesci metti il percorso intero del file e cioè ww.nomesito.it/cartella/ecc. tre volte w non mi è concesso mettere link 🙂


  • User Newbie

    @tifo-milan.it said:

    questo ../ serve per scendere...se sei sopra di due cartelle lo metterai due volte e cioè ../../

    infatti lo metto due volte... e mettendolo due volte quando dal menu chiamo la pagina con percorso //nomesito/cartella1/nomefile
    non la trova perchè va a cercare //nomesito/cartella1/cartella1/nomefile ...ma la seconda cartella1 NON esiste.

    come dicevo per scrupolo prima di scrivere qui ho provato a mettere ../ una volta sola oppure tre volte ...così come ho provato ad usare $_server etc. ma in tutti questi modi scompare proprio la parte di pagina dove dovrebbe esserci l'incluso di turno.

    quindi la domanda resta:
    perchè se scrivo ../../cartellainclusi/fileincluso che dovrebbe essere la forma giusta NON funziona il link?!
    perchè vuole mandarmi in una sottocartella che non esiste?! :mmm:
    che errore faccio e dove?

    @tifo-milan.it said:

    se proprio non riesci metti il percorso intero del file e cioè ww.nomesito.it/cartella/ecc. tre volte w non mi è concesso mettere link 🙂

    il fatto è che ho un sito con moltissime pagine che hanno ottime possibilità nel tempo di aumentare e venire spostate in nuove cartelle o sottocartelle per miglior gestione
    inoltre sto creando il sito su un server di prova (quindi con un nomesito non reale) e vorrei evitare poi di dover cambiare tutte le stringhe include quando invece magari il non funzionamento è dovuto ad una stupidaggine che non riesco a vedere da sola

    scusate l'insistenza ma finchè non risolvo sta cosa :arrabbiato:
    non posso andare avanti con il sito!!!

    Nad