Visualizzazione dei risultati da 1 a 4 su 4

Discussione: Problema con $GLOBALS

  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2011
    Messaggi
    12

    Problema con $GLOBALS

    Ciao a tutti!
    Sto creando un nuovo sito all'interno di una cartella "test".

    1- ho creato un file "config.php" contenente tutti i DEFINE da utilizzare nel mio sito.

    2- ho creato inoltre un file "head.php" contenente tutti i meta tag, i title, i css, ecc ecc da utilizzare ed all'inizio ho inserito:
    codice HTML:
    <?php
    include ($_SERVER['DOCUMENT_ROOT']."/test/config.php");
    ?>
    3- Nella mia "index.php" , tra i tag "head ho inserito:
    codice HTML:
    <head>    
    <?php 
    include ($_SERVER['DOCUMENT_ROOT']."/test/head.php"; 
    ?>
    </head>
    TUTTO FUNZIONA PERFETTAMENTE FIN QUI!Il mio problema è il seguente:

    Ogni pagina del mio sito utilizzer� questa struttura, ma se un domani decidessi di pubblicare il sito NON PIU' nella sottocartella "test" ma nella root, dovrei aprire ogni singolo file e modificare il percorso di ciascun include.

    Volevo evitare il problema dichiarando (nel file config.php) 2 varibili globali:
    Codice PHP:
    $GLOBALS['head']= '/test/head.php';
    $GLOBALS['config']= '/test/config.php'
    e modificare "head.php" con:
    codice HTML:
    <?php
    include ($_SERVER['DOCUMENT_ROOT'].$GLOBALS['config']);
    ?>


    mentre in index.php ho sostituito con:
    codice HTML:
    <head>
    <?php 
    include ($_SERVER['DOCUMENT_ROOT'].$GLOBALS['head']); 
    ?>
    </head>
    Il problema � che non riesco a vedere le 2 variabili globali!!! Come posso risolvere affinche le variabili siano visibili da altri file esterni?

    Grazie

    Manuel

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Quote Originariamente inviata da mmanu87 Visualizza il messaggio
    ...
    Volevo evitare il problema dichiarando (nel file config.php) 2 varibili globali:
    Codice PHP:
    $GLOBALS['head']= '/test/head.php';
    $GLOBALS['config']= '/test/config.php'
    e modificare "head.php" con:
    codice HTML:
    <?php
    include ($_SERVER['DOCUMENT_ROOT'].$GLOBALS['config']);
    ?>
    ...
    Prova a pensare bene a cosa dovrebbe fare la riga
    include ($_SERVER['DOCUMENT_ROOT'].$GLOBALS['config']);

    vuoi usare il valore $GLOBALS['config'] per includere il file in cui tale variabile è dichiarata.
    Come potrebbe funzionare?

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2011
    Messaggi
    12
    Quote Originariamente inviata da Alhazred Visualizza il messaggio
    Prova a pensare bene a cosa dovrebbe fare la riga
    include ($_SERVER['DOCUMENT_ROOT'].$GLOBALS['config']);

    vuoi usare il valore $GLOBALS['config'] per includere il file in cui tale variabile è dichiarata.
    Come potrebbe funzionare?
    Hai ragione! Però potresti dirmi come posso fare per raggiungere il mio obiettivo? Ho provato anche a dichiarare le variabili globali all'inizio della mia index.php e da li riesco ovviamente a vederle ma solo ed esclusivamente per il file index.php! Le altre pagine non riescono a vederle!

  4. #4
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Usa path relativi per includere il file config.php

    se la pagina è nella stessa directory del config.php fai
    include('config.php');

    se la pagina è in una sottodirectory fai
    include('../config.php');

    e così via.

Tag per questa discussione

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.